DataGrid双向排序

<HTML>相关脚本

<asp:datagrid id="dgd" runat="server" DataKeyField="Id" CellPadding="0" BorderColor="#BAC9DC"
                    AutoGenerateColumns="False" Width="100%" AllowSorting="True">
                    <AlternatingItemStyle CssClass="AlternatingItem"></AlternatingItemStyle>
                    <ItemStyle CssClass="item"></ItemStyle>
                    <HeaderStyle CssClass="header"></HeaderStyle>
                    <Columns>
                     <asp:BoundColumn DataField="Id" SortExpression="Id" HeaderStyle-ForeColor="#000000" HeaderText="编号"></asp:BoundColumn>
                     <asp:BoundColumn DataField="Name" SortExpression="Name" HeaderStyle-ForeColor="#000000" HeaderText="名称"></asp:BoundColumn>

                        </Columns>
                   </asp:datagrid>

 

 

.cs代码

// 在此处放置用户代码以初始化页面
   if( !this.IsPostBack)
   {
    if(this.dgd.Attributes["SortExpression"]==null) //这里dgd为datagrid   ID
    {
     this.dgd.Attributes["SortExpression"]="Id";  //这里给datagrid增加一个排序属性,且默认排序表达式;
     dgd.Attributes["SortDirection"]="ASC"; //这里给datagrid增加一个排序方向属性,且默认为升序排列;
    } 
    
    this.Query();    
   }

 

#region 查询并并绑定数据。  
  private void InternalQuery()
  { 
   //设定导入的起终地址   
   int startIndex = this.CurrentPageIndex * this.PageSize;
   try
   {     
    //初始化所建表的SQL语句

    string strSel = "SELECT  ID,Name  FROM  XTABLE    " ;
    DataSet ds = new DataSet();    
    SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,conn);
    MyAdapter.Fill(ds,startIndex,PageSize,"XTABLE"); 
    
    
    DataView dv=new DataView();
    string SortExpression=dgd.Attributes["SortExpression"];
    string SortDirection=dgd.Attributes["SortDirection"];
    dv=ds.Tables["loyor"].DefaultView;    //来自web service的dataset,这里随便一个ds就可以;
    dv.Sort=SortExpression+" "+SortDirection; //指定视图的排序方式;
    dgd.DataSource=dv; //指定数据源
    conn.Close();         
   }
   catch(Exception exc)
   {
    string s = exc.ToString();
   }
   
   this.dgd.DataBind();  
  }

排序

 private void dgd_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
  {
   string SortExpression=e.SortExpression.ToString();  //获得当前排序表达式
   string SortDirection="ASC"; //为排序方向变量赋初值
   if(SortExpression==dgd.Attributes["SortExpression"])  //如果为当前排序列
   {
    SortDirection=(dgd.Attributes["SortDirection"].ToString()==SortDirection?"DESC":"ASC");     //获得下一次的排序状态

   }
   dgd.Attributes["SortExpression"]=SortExpression;
   dgd.Attributes["SortDirection"]=SortDirection;
   this.InternalQuery();
  }   

以上可以实现点击datagrid的标题栏任一列,实现双向排序

阅读更多
上一篇关于梅花雨日历控件的调用
下一篇如何使用MD5技术加密
想对作者说点什么? 我来说一句

DataGrid中实现双向排序

2007年08月18日 1024B 下载

wpf DataGrid分组、排序、筛选

2018年02月02日 76KB 下载

DataGrid 查找排序

2013年05月03日 3KB 下载

GridView正反双向排序

2012年09月02日 44KB 下载

排序双向 循环链表

2014年08月31日 3KB 下载

juqery easyui datagrid排序

2018年02月27日 4KB 下载

强化DataGrid控件功能代码

2008年11月06日 123B 下载

delphi listview双向排序

2009年08月18日 197KB 下载

没有更多推荐了,返回首页

关闭
关闭