msgbartop
Somethings you can’t control,just go ahead
msgbarbottom

04 Jul 07 真的需要这么多好友吗?

Twitter火的一塌糊涂,国内的克隆站点也是风生水起,真的是“人多力量大”。
前端时间注册才注册了Twitter,但感觉速度比较慢,一直没用。
又注册了“饭否”,感受了一下,说实话——总的感觉就是,没啥意思。

对于这么一个2.0的东西,我看到的是,使用者大多是对于互联网比较关注,或者IT相关行业的人员。对于其他行业的人来说,目前为止我估计有60~70%的网民可能还没完全弄明白RSS是怎么回事,要他们来关注并使用这么一个2.0的东西好像比较牵强。

我在饭否的好友总共没几个,但每次打开“我的首页”都是几大屏几大屏的更新,诸如一些"天亮了,睡了"之类的好友消息,你说我是看还是不看,看吧实在没啥意义,不看吧那使用这项服务的意义又在哪里呢?

Twitter是要给大家的思想和日常行为留下一个轨迹,同时能和好友去分享这个轨迹。不过对这个思想我不完全认同,我觉得这只是作为互联网从业者在2.0风潮鼓动下的一厢情愿的想法。

很简单,即便是再好的朋友,我也不想一天24小都知道他在干嘛,或者在想什么,这个对我来讲没有必要。2.0所前调的互动,参与,分享,这个很棒,但就目前状况而言,是不是“分享”的有点过度呢?有必要分享这么多吗?你分享的东西朋友真正需要吗?

看看饭否上的一些“名人”的页面,好友几百个,不知道是否真的所有的好友的信息都在关注,如果都在关注,那就太强了,如果就只有一部分在关注,那所谓的“好友”似乎又失去了原有的意义。

所以我感觉,2.0时代是一个“好友”过剩的时代,其实这种过剩并不是由2.0本身所造成的,2.0强调的是沟通,为了需要去沟通,而现在好多站点仅仅是让大家为了沟通而沟通,或者说我们的用户仅仅是为了沟通而沟通,看看饭否上有的朋友一天几十甚至上百的更新,看起来真的是满繁荣的,但“浮华背后”呢?

我觉得我们现在的2.0概念有点过了,好像已经2.5了,甚至250了。

Tags: , ,

04 Jul 07 Asp.net Study(15)

Global.asax文件

Global.asax总共有7个事件,分别为:
Application_Start,Application_End,Application_BeginRequest,Application_EndRequest,Application_Error
Session_Start,Session_End

代码:
实现功能:1,利用Application对象定义一个全局变量 同时用Application_Start事件在应用程序开始被请求的时候就将其初始化 2,利用Application_BeginRequest统计访问量 3,利用Session_Start事件统计在线人数

Global.asax

<%@ Application Language=”C#” %>

<script runat=”server”>

void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
String Myconnstring = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + Server.MapPath(”.”) + “..\\data\\score.mdb;”;
Application["ConnString"] = Myconnstring;
Application["PageViewer_Count"]=0;
Application["Online_Count"]=0;
}

void Application_BeginRequest(object sender, EventArgs e)
{
Application["PageViewer_Count"] = (Int32)Application["PageViewer_Count"] + 1;
}

void Session_Start(object sender, EventArgs e)
{
Application["Online_Count"] = (Int32)Application["Online_Count"] + 1;
}

void Session_End(object sender, EventArgs e)
{
Application["Online_Count"] = (Int32)Application["Online_Count"] - 1;
}

</script>

UseforGlobal.aspx

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”UseforGlobal.aspx.cs” Inherits=”UseforGlobal” %>
<%@ Import Namespace=”System.Data” %>
<%@ Import Namespace=”System.Data.OleDb” %>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml” >
<head runat=”server”>
<script runat=server>
OleDbConnection Myconn;
public void Page_Load(Object src, EventArgs e)
{

string Myconnstring = (string)Application["ConnString"];

Myconn = new OleDbConnection(Myconnstring);
Myconn.Open();

PageViewer_Count.Text = Application["PageViewer_Count"].ToString();

Online_Count.Text = Application["Online_Count"].ToString();

Data_Bind();
}

ICollection DataSource()
{
string strsel = “select * from score”;
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strsel, Myconn);
DataSet ds = new DataSet();
MyAdapter.Fill(ds, “score”);

return ds.Tables["score"].DefaultView;

}

public void Data_Bind()
{
score.DataSource = DataSource();
score.DataBind();
}
</script>
<title>UseforGolbal</title>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
<asp:DataGrid ID=”score” runat=server>
<Columns>
<asp:BoundColumn HeaderText=”Name” DataField=”s_Name”/>
</Columns>
</asp:DataGrid><br><br>
PageViewer_Count:<asp:Label ID=”PageViewer_Count” runat=server/><br><br>
Online_Count:<asp:Label ID=”Online_Count” runat=server/>
</div>
</form>
</body>
</html>

Tags:

28 Jun 07 Asp.net Study(14)

Application,Session,Cookie

Application:设置全局变量,所设变量在整个应用程序范围内有效。
有 Application.Lock() and Application.UnLock() 两个方法。

Session:在Asp中session要依赖于cookie才可运行,但在Asp.net中设置web.config sessionState cookieless="true"则可使session不依赖于cookie

Cookie:实例化一个cookie HttpCookie xxx=new HttpCookie("xxx")
设置单值的cookie,cookie.Value="xxx"
设置多值的cookie,cookie.Value.Add("KeyWord","value")
应用cookie Response.AppendCookie("cookiename")
读取cookie HttpCookie xxx=Request.Cookies("xxx")
设置cookie的过期时间
DateTime xxx=DateTime.Now;
TimeSpan xx=new TimeSpan(x,x,x,x) 分别为天,小时,分钟,秒
cookie.Expires=xxx.Add(xx)

代码:

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<script runat=server>
   
    //Application的应用
    public void Page_Load(Object src, EventArgs e)
    {
        Application.Lock();
        Application["User_Count"] = (Int32)Application["User_Count"] + 1;
        Application.UnLock();
        Count.Text = Application["User_Count"].ToString();

        //设置session
        Session["Name"] = "John";
        Name.Text = Session["Name"].ToString();
       
        //建立一个cookie实例,并对其赋值
        HttpCookie cookie = new HttpCookie("John");
        DateTime dt = DateTime.Now;
        TimeSpan ts = new TimeSpan(0, 0, 2, 0);
        cookie.Expires = dt.Add(ts);
       
        cookie.Values.Add("name", "John");
        cookie.Values.Add("age", "26");
        cookie.Values.Add("sex", "male");
        Response.AppendCookie(cookie);
       
        //读取cookie
        HttpCookie readcookie = Request.Cookies["John"];
        cookie1.Text = readcookie.Values["name"].ToString();
        cookie2.Text=readcookie.Values["age"].ToString();
        cookie3.Text = readcookie.Values["sex"].ToString();
       
       
    }
</script>
    <title>Application</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    The count of viewer is:<asp:Label ID="Count" ForeColor=red runat=server/><br>
    Example of Session,Name is:<asp:Label ID="Name" ForeColor=blue runat=server/>
    <br>Name:<asp:Label ID="cookie1" runat=server/><br>
    Age:<asp:Label ID="cookie2" runat=server/><br>
    Sex:<asp:Label ID="cookie3" runat=server/><br>
    </div>
    </form>
</body>
</html>

Tags:

25 Jun 07 仁慈的诺顿

诺顿:我们的全球病毒防御系统发现了一个病毒,上天有好生之德,我们已将其隔离。就让它在隔离区安度余生吧。

Tags:

24 Jun 07 闷热的上海,垃圾的电信

这两天连绵不断的雨天,和持续闷热的高温预示着上海的梅雨季节已经到了。
对于一个在北方长大,但喜欢夏天的我,这样的天气对我没什么影响。

但近两天却有另一件事情,始终在破坏这我的心情。
重新申请了电信宽带大概有两个礼拜,我到今天为止,维修电话我已经打过四个了。

1,刚装好(1M的带宽),可下载速度至高只能达到30K。我的第一反应就是机器中毒了,首先查毒,无果。继而重装系统,打全了补丁,杀毒,再上网,依然是之前的速度。我知道不是自己机器的问题了,于是打了第一个报修电话。
结果:我的线路所使用的电信的一个什么接口有问题,维修人员换了一个接口,ok正常了。

2,突然不能拨号了,“猫”的Link灯不亮。我打了第二个报修电话。
结果:维修人员来检测了一下,电话线没信号,断定是线路问题,然后下楼搞了一下,ok,能拨上去了,于是我下楼吃饭(为了等电信的维修人员我饿到7:00PM,生怕别人来了家里没人又不知道得等到什么时候)。

3,吃饭回来打开电脑,发现网络传输速度很慢,下载测试,又是最多30K。打了第三个报修电话。
结果:还是线路问题。

4,就在前边的问题解决后的一天,早上起床打开电脑,又拨不上去。重启Modem,重启路由器,重启电脑,把所有能拔下来的接口都重新插拔了一便,还是不行。第四个报修电话。
结 果:运气倒是挺好的,刚好有个维修人员说就在我们这个小区,过了没多久就过来了,检测了以后说是线路没问题,维修人员让我重启Modem,我说已经重启过 很多次了,他说是关掉不要马上开,等个10多分钟左右再起,然后跟维修人员抽了两只烟,聊了聊天,他抱怨这两天太忙了(看来跟我一起郁闷的有不少人)。大 概15分钟左右后重启,ok,可以拨了,速度也还正常。

真不知道下次出现问题会在什么时候,老天保佑!

线路问题也就算了,毕竟这些东西,虽然有定期维护,但这么庞大的一个网络,难免也会出现点问题。

可电信这娇气的“猫”就让我有点火了,您还真“金枝玉叶”天气稍微热点就要死,况且也不是特别热啊,我在家的时候空调都是开着的。听说别人说以前电信自带的是中兴或是华为的Modem,不知道什么时候换成了现在这个没人知道的鸟牌子。

估计鸟牌子厂家是花了大力气了,不过请客吃饭,加上最后塞红包的钱,比起“电信配套”所带来的利润,应该还是相当值的。

最后有一点欣慰的是,到目前为止,维修人员的态度都还不错。

Tags:

23 Jun 07 Twitter的访问速度

在Donews blogger中我估计算是落伍的,虽然知道Twitter有一段时间了,但今天刚刚注册。
可注册之后在使用过程中,感觉好像网页打开速度不是很理想,确切的说应该是挺慢的!
试了一下其他网站,正常。
用Net Meter看了一下流量,在没有其他任何程序占用带宽的情况下,仍旧很慢。
作为一个用户我的体验就是:其他的还不知道,但速度比较慢。

Tags:

23 Jun 07 Asp.net Study(13)

DataList控件

包含的模板:ItemTemplate,HeaderTemplate,FooterTemplate,AlternatingItemTemplate,SeparatorTemplate,SelectedItemTemplate,EditItemTemplate

同时DataList控件提供了Repeater不具备的RepeatDriection and RepeatColumns属性
RepeatDirection可以取两个值:Horizontal and Vertical(默认为Vertical)

学习内容:SelectedItemTemplate,EditItemTemplate

注意:在OnItemCommand的响应函数中score.SelectedIndex=e.Item.ItemIndex这句如果没有的话,也可以正常运行,只是在最后的结果中要点击连接两次才会显示SelectedItemTemplate中的内容。

代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataGridSort.aspx.cs" Inherits="DataGridSort" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<script runat=server>
    OleDbConnection Myconn;
    public void Page_Load(Object src, EventArgs e)
    {
        //连接语句
        string Myconnstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".") + "..\\data\\score.mdb;";
        Myconn = new OleDbConnection(Myconnstring);
        Myconn.Open();
       
        if (!IsPostBack)
        {
            BindGrid();
        }
    }
   
    //创建默认视图
    ICollection Createtable()
    {
        string strsel = "select * from score";
        OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strsel, Myconn);
        DataSet ds=new DataSet();
        MyAdapter.Fill(ds, "score");

        return ds.Tables["score"].DefaultView;
    }
   
    //数据绑定
    public void BindGrid()
    {
        score.DataSource = Createtable();
        score.DataBind();
    }
   
    //select命令响应函数
    public void DataList_ItemCommand(Object sender, DataListCommandEventArgs e)
    {
        score.SelectedIndex = e.Item.ItemIndex;
        BindGrid();
    }
   
    //编辑命令响应函数
    public void DataList_EditCommand(Object sender, DataListCommandEventArgs e)
    {
        score.EditItemIndex = e.Item.ItemIndex;
        BindGrid();
    }
   
    //取消命令响应函数
    public void DataList_CancelCommand(Object sender, DataListCommandEventArgs e)
    {
        score.EditItemIndex = -1;
        BindGrid();
    }
   
    //更新命令响应函数
    public void DataList_UpdateCommand(Object sender, DataListCommandEventArgs e)
    {
        string strname=((Label)e.Item.FindControl("lblname")).Text;
        int intmath=Int32.Parse(((TextBox)e.Item.FindControl("tbmath")).Text);
        int intenglish=Int32.Parse(((TextBox)e.Item.FindControl("tbenglish")).Text);
        int intchinese=Int32.Parse(((TextBox)e.Item.FindControl("tbchinese")).Text);

        string strupdate = "Update score set s_Math=" +intmath+ ",s_English=" +intenglish+ ",s_Chinese=" +intchinese+ " where s_Name=’" +strname+ "’";
        OleDbCommand Mycommand = new OleDbCommand(strupdate, Myconn);
        Mycommand.ExecuteNonQuery();

        score.EditItemIndex = -1;
        BindGrid();
    }

</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:DataList ID="score"
    HeaderStyle-BackColor=ActiveCaptionText
    AlternatingItemStyle-BackColor=ActiveCaption
    runat=server
    OnItemCommand="DataList_ItemCommand"
    OnEditCommand="DataList_EditCommand"
    OnCancelCommand="DataList_CancelCommand"
    OnUpdateCommand="DataList_UpdateCommand"
    SelectedItemStyle-BackColor=red
    RepeatLayout=Table>
    <ItemTemplate>
    Name:<%# DataBinder.Eval(Container.DataItem,"s_Name") %>
    <asp:LinkButton Text="Details" id="btnselect" CommandName="select" runat=server/>
    <asp:LinkButton Text="Edit" ID="btnedit" CommandName="edit" runat=server/>
    </ItemTemplate>
    <SelectedItemTemplate>
    Name:<%# DataBinder.Eval(Container.DataItem,"s_Name") %><br>
    Math:<%# DataBinder.Eval(Container.DataItem,"s_Math") %><br>
    English:<%# DataBinder.Eval(Container.DataItem,"s_English") %><br>
    Chinese:<%# DataBinder.Eval(Container.DataItem,"s_Chinese") %><br>
    </SelectedItemTemplate>
   
    <EditItemTemplate>
    Name:<asp:Label ID="lblname" Text=’<%# DataBinder.Eval(Container.DataItem,"s_Name") %>’ runat=server/><br>
    Math:<asp:TextBox ID="tbmath" Text=’<%# DataBinder.Eval(Container.DataItem,"s_Math") %>’ runat=server/><br>
    English:<asp:TextBox ID="tbenglish" Text=’<%# DataBinder.Eval(Container.DataItem,"s_English") %>’ runat=server/><br>
    Chinese:<asp:TextBox ID="tbchinese" Text=’<%# DataBinder.Eval(Container.DataItem,"s_Chinese") %>’ runat=server/><br>
    <asp:LinkButton ID="lblupdate" Text="Update" CommandName="Update" runat=server/>
    <asp:LinkButton ID="lblcancel" Text="Cancel" CommandName="Cancel" runat=server/>
    </EditItemTemplate>
    </asp:DataList>
    </div>
    </form>
</body>
</html>

DataList的分页功能

现在的水平,程序只能照教材抄,自己来理一下程序的思路。

注:在程序调试的过程中,在return ds.Tables["score"].DefaultView处出现了一个错误,提示“需要输入符号”,当时没能解决,关了电脑,除去吃了个饭,回来再打开,调试,ok了。

1,分页所需要的数据:PageSize,PageCount,RecordCount,PageIndex,CurrentPage(给ViewState["PageIndex"]付值用)

2,编写函数去得到相应数据

3,首先通过StartIndex取得需要显示的页的第一条记录的Index值 StartIndex=CurrentPage*PageSize
然后通过MyAdapter.Fill()方法获得要显示的页的默认视图MyAdapter.Fill(ds,StartIndex,PageSize,"score")

4, 绑定数据。对是否是首页或是末页进行判断(通过CurrentPage<PageCount-1 and CurrentPage>0进行判断),如果是首页则设置lbnPrevPage.Enabled=false,如果是末页则设置 lbnNextPage.Enabled=false

5,使用swith case函数对要进行上翻页还是下翻页进行判断,上翻和下翻的命令用e.CommandName来取得

6,最后设置ViewState["PageIndex"]=CurrentPage

代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataListPageIndex.aspx.cs" Inherits="DataListPageIndex" %>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.OleDb"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<script runat=server>
    OleDbConnection Myconn;
    int PageSize, ItemCount, RecordCount, PageCount, CurrentPage;
    public void Page_Load(Object src, EventArgs e)
    {
        PageSize = 2;
       
        //连接语句
        string Myconnstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(".")+"..\\data\\score.mdb;";
        Myconn=new OleDbConnection(Myconnstring);
        Myconn.Open();
       
       
        //第一次请求执行
        if (!IsPostBack)
        {
            ListBind();
            CurrentPage = 0;
            ViewState["PageIndex"] = 0;
           
            //计算记录条数
            RecordCount = CalculateRecord();
            lblRecordCount.Text = RecordCount.ToString();
           
            //计算总共有多少页
            PageCount = RecordCount / PageSize;
            lblPageCount.Text = PageCount.ToString();
            ViewState["PageCount"] = PageCount;
        }
    }
   
    //计算记录条数
    public int CalculateRecord()
    {
        int intCount;
        string strCount = "select Count(*) as co from score";
        OleDbCommand Mycommand = new OleDbCommand(strCount, Myconn);
        OleDbDataReader dr = Mycommand.ExecuteReader();

        if (dr.Read())
        {
            intCount = Int32.Parse(dr["co"].ToString());
        }
        else
        {
            intCount = 0;
        }
        dr.Close();
        return intCount;
    }
   
    //创建数据源
    ICollection DataSource()
    {
     //设定读取的起始位置
     int startindex;
     startindex = CurrentPage*PageSize;
    
     string strsel="select * from score";
     OleDbDataAdapter MyAdapter=new OleDbDataAdapter(strsel,Myconn);
     DataSet ds=new DataSet();
     MyAdapter.Fill(ds,startindex,PageSize,"score");

     return ds.Tables["score"].DefaultView;
    }
   
    //数据绑定
    public void ListBind()
    {
        score.DataSource = DataSource();
        score.DataBind();

        lbnNextPage.Enabled = true;
        lbnPrevPage.Enabled = true;

        if (CurrentPage == PageCount - 1) lbnNextPage.Enabled = false;
        if (CurrentPage == 0) lbnPrevPage.Enabled = false;
        lbnCurrentPage.Text = (CurrentPage + 1).ToString();
    }
   
    //Page_OnClick事件处理
    public void Page_OnClick(Object sender,CommandEventArgs e)
    {
        PageCount = (int)ViewState["PageCount"];
        CurrentPage = (int)ViewState["PageIndex"];
       
        //判断翻页方向
        string cmd=e.CommandName;
        switch(cmd)
        {
            case "Next":
                if(CurrentPage<(PageCount-1)) CurrentPage++;
                break;
            case "Prev":
                if(CurrentPage>0) CurrentPage–;
                break;
        }
        ViewState["PageIndex"]=CurrentPage;
        ListBind();
    }
</script>
    <title>DataListPageIndex</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    Total<asp:Label ID="lblRecordCount" runat=server/>record&nbsp;Current<asp:Label ID="lbnCurrentPage" ForeColor=Red runat=server/>/<asp:Label ID="lblPageCount" ForeColor=red runat=server/>page&nbsp;
   
    <asp:DataList ID="score" AlternatingItemStyle-BackColor=ControlDarkDark HeaderStyle-BackColor=AntiqueWhite runat=server>
    <ItemTemplate>
    Name:<%# DataBinder.Eval(Container.DataItem,"s_Name")%>
    </ItemTemplate>
    </asp:DataList>
    <asp:LinkButton ID="lbnPrevPage" OnCommand="Page_OnClick" CommandName="Prev" runat=server Text="PrevPage"/>
    <asp:LinkButton ID="lbnNextPage" OnCommand="Page_OnClick" CommandName="Next" runat=server Text="NextPage"/>
    </div>
    </form>
</body>
</html>

Tags:

23 Jun 07 别说我不喜欢听的

Blogger:为什么又封我blog啊?
GFW:还问我为什么,自己不知道吗?
Blogger:自从上次您教育了我之后,我已经很小心了啊。刚刚看到你们家里有一些无良的老板在虐带员工,我想写出来让大家评评理啊。我知道您忙,事情多,这些“繁杂的家务事”可能没时间管,所以我就帮帮您啊。
GFW:靠,你闲的蛋疼是吧,那个老板是我兄弟,欺负几个小工怎么了,我们家就这样,我们家房子你看你能租就租,不能租就走(整个“中原”都是我们家,我看你能走到哪)。记住,以后别说我不喜欢听的,说了就封你,少跟我理论,没商量。
Blogger:……

刚刚从Googlereader的订阅中看到Isaac Lifelog的一个更新,关于山西黑砖窑的。

点击链接过去,就是无法访问。
看来GFW这帮哥们也是没日没夜在干啊。
同志们,辛苦了!

Tags:

22 Jun 07 Asp.net Study(12)

DataGrid 控件

用到的属性 :AllowSorting,OnSortCommand

6.用Sort方法进行排序

注意:如果要设置排序数序(DESC),则在IsPostBack函数中必须指定默认的排序字段,否则会出现找不到DESC字段错误。

if (!IsPostBack)
        {
            ViewState["SortField"] = "s_Name";
            BindGrid();
        }

Sort方法的代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataGridSort.aspx.cs" Inherits="DataGridSort" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<script runat=server>
    OleDbConnection Myconn;
    public void Page_Load(Object src, EventArgs e)
    {
        string Myconnstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".") + "..\\data\\score.mdb;";
        Myconn = new OleDbConnection(Myconnstring);
        Myconn.Open();

        if (!IsPostBack)
        {
            ViewState["SortField"] = "s_Name";
            BindGrid();
        }
    }
    ICollection Createtable()
    {
        string strsel = "select * from score";
        OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strsel, Myconn);
        DataSet ds=new DataSet();
        MyAdapter.Fill(ds, "score");

        return ds.Tables["score"].DefaultView;
    }
    public void BindGrid()
    {
        DataView dv = (DataView)Createtable();
        dv.Sort = (string)ViewState["SortField"]+" DESC";
        score.DataSource = dv;
        score.DataBind();
    }
    public void DataGrid_Sort(Object Sender, DataGridSortCommandEventArgs e)
    {
        ViewState["SortField"] = (string)e.SortExpression;
        BindGrid();
    }
</script>
    <title>DataGridSort</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:DataGrid ID="score" AutoGenerateColumns=false HeaderStyle-BackColor=ActiveCaption AlternatingItemStyle-BackColor=AliceBlue AllowSorting=true OnSortCommand="DataGrid_Sort" runat=server>
    <Columns>
    <asp:BoundColumn HeaderText="Name" DataField="s_Name" SortExpression="s_Name" ReadOnly=true/>
    <asp:BoundColumn HeaderText="Math" DataField="s_Math" SortExpression="s_Math"/>
    <asp:BoundColumn HeaderText="English" DataField="s_English" SortExpression="s_English"/>
    <asp:BoundColumn HeaderText="Chinese" DataField="s_Chinese" SortExpression="s_Chinese"/>
   
    </Columns>
    </asp:DataGrid>  
    </div>
    </form>
</body>
</html>

Repeater控件

Repeater控件的五种模板:HeaderTemplate,ItemTemplate,AlternatingItemTemplate,SeparatorTemplate,FooterTemplate

Repeater控件的代码

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css" class="1">
<!–
a:link { text-decoration: none}
a:active { text-decoration: none }
a:visited { text-decoration: none }
–>
</style>

<script language="c#" runat="server">
public void Page_Load(Object src,EventArgs e)
{
string Myconnstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(".")+".\\data\\score.mdb;";
OleDbConnection Myconn=new OleDbConnection(Myconnstring);
Myconn.Open();

string strsel="select * from score";
OleDbDataAdapter MyAdapter=new OleDbDataAdapter(strsel,Myconn);
DataSet ds=new DataSet();
MyAdapter.Fill(ds,"score");
score.DataSource=ds;
score.DataMember="score";
score.DataBind();
}

</script>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>DataGrid</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:Repeater id="score" runat="server">
<HeaderTemplate>
This is Header<br>
</HeaderTemplate>
<ItemTemplate>
Name:<%# DataBinder.Eval(Container.DataItem,"s_Name")%><br>
Chinese:Name:<%# DataBinder.Eval(Container.DataItem,"s_Chinese")%><br>
</ItemTemplate>
<AlternatingItemTemplate>
Name:<font color=red><%# DataBinder.Eval(Container.DataItem,"s_Name")%></font><br>
Chinese:Name:<font color=red><%# DataBinder.Eval(Container.DataItem,"s_Chinese")%></font><br>
</AlternatingItemTemplate>
<SeparatorTemplate>
<hr>
</SeparatorTemplate>
<FooterTemplate>
This is Footer
</FooterTemplate>

</asp:Repeater>
</form>
</body>
<html>

</html>

Tags:

20 Jun 07 我们的祖国是花园

在报纸上看到两篇报道

1.杭萧钢构信息披露舞弊案有了结果。两个人被抓了,一个是2004年刚进公司,目前负责信息披露的“管理人员”,一个是“某娱乐城”经理。

怎么看,怎么八竿子打不着。只能说这俩哥们倒霉,不过,也许,可能一笔丰厚的“抚恤金”是要的。

2.韩国富豪打人,最少3年监禁。富豪儿子在酒吧跟人发生口角,进而肢体“碰撞”,富豪老爸带了一群保镖,把酒吧几个服务生带出扁了一通。

最少3年监禁!

换个环境呢?

舞弊的杭萧放到韩国——被抓的也许就是八竿子打的着的人

打人的富豪移民中国——公安同志都是兄弟,一顿饭的事情

Tags: