点击列表头,datagrid会自己排序的

解决方案 »

  1.   

    先sql语句排序好,然后在DataTable里添加一列(自增长的)就可以实现了!
      

  2.   

    triout(笨牛)老兄已经把我的话都说了呢,
    不过点击时数据要重新组织,然后重新绑定到datagrid上
      

  3.   

    一种方法:
    在数据集里添加一列“排名”,然后绑定datagrid的相应列即可...
      

  4.   

    用sql实现,然后绑定就可以了!
      

  5.   

    关于序号的问题,这里给你个例子:<%@ Page language="C#"%>
    <script language="c#" runat=server>
    void Page_Load(object sender,EventArgs e)
    {
    System.Data.DataTable dt=new System.Data.DataTable();
    dt.Columns.Add("Score");
    System.Data.DataRow dr;
    for(int i=0;i<10;i++)
    {
    dr=dt.NewRow();
    dr["Score"]=100-i;
    dt.Rows.Add(dr);
    }
    DataGrid1.DataSource=dt;
    DataGrid1.DataBind();
    }
    void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
    Label lbl=e.Item.FindControl("Label1") as Label;
    if(lbl!=null)
    {
    lbl.Text=((int)(e.Item.ItemIndex+1)).ToString();
    }
    }
    </script>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML xmlns:pan="http://schemas.code6421.com/PowerAsp">
    <HEAD>
    <title>WebForm1</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="C#" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
                          <asp:DataGrid runat=server id=DataGrid1 OnItemDataBound="DataGrid1_ItemDataBound">
    <Columns>
    <asp:TemplateColumn>
    <ItemTemplate>
    <asp:Label RunAt=server id=Label1/>
    <asp:Label RunAt=server id=Label2 Text='<%#DataBinder.Eval(Container,"DataItem.Score")%>'/>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:DataGrid>
    </form>
    </body>
    </HTML>
      

  6.   

    有两种方法:
    1。在DATATABLE增加一个自动递增的列
    2。就是用DATAGRID的排序事件
      

  7.   


    可以在编程的时候用orderby排序