zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

gridview自动排序示例分享

自动排序 示例 分享 GridView
2023-06-13 09:15:16 时间

示例如下:前台

复制代码代码如下:


<%@PageLanguage="C#"AutoEventWireup="true" CodeFile="Default.aspx.cs"Inherits="_Default"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
   <title>无标题页</title>
</head>
<body>
   <formid="form1"runat="server">
   <div>
       <asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"CellPadding="4"ForeColor="#333333"GridLines="None"AllowSorting="True"OnSorting="GridView1_Sorting">
           <FooterStyleBackColor="#507CD1"Font-Bold="True"ForeColor="White"/>
           <RowStyleBackColor="#EFF3FB"/>
           <Columns>
               <asp:BoundFieldDataField="id"HeaderText="ID"SortExpression="id"/>
               <asp:BoundFieldDataField="name"HeaderText="NAME"SortExpression="name"/>
               <asp:BoundFieldDataField="age"HeaderText="AGE"SortExpression="age"/>
           </Columns>
           <PagerStyleBackColor="#2461BF"ForeColor="White"HorizontalAlign="Center"/>
           <SelectedRowStyleBackColor="#D1DDF1"Font-Bold="True"ForeColor="#333333"/>
           <HeaderStyleBackColor="#507CD1"Font-Bold="True"ForeColor="White"/>
           <EditRowStyleBackColor="#2461BF"/>
           <AlternatingRowStyleBackColor="White"/>
       </asp:GridView>
   </div>
   </form>
</body>
</html>

前台注意点:
需要对GridView启用AllowSorting、设置OnSorting事件,对需要排序的列设定SortExpression属性。

后台

复制代码代码如下:


usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;

publicpartialclass_Default:System.Web.UI.Page
{
   protectedvoidPage_Load(objectsender,EventArgse)
   {
       if(!IsPostBack)
       {
           //设定初始排序参数值

           //错误的属性设置方法:SortExpression、SortDirection均是GridView只读属性,无法直接赋值。
           //this.GridView1.SortExpression="id";
           //this.GridView1.SortDirection="ASC";

           //正确的属性设置方法
           this.GridView1.Attributes.Add("SortExpression","id");
           this.GridView1.Attributes.Add("SortDirection","ASC");

           //绑定数据源到GridView
           this.BindGridView();
       }
   }

   ///<summary>
   ///GridView排序事件
   ///</summary>
   protectedvoidGridView1_Sorting(objectsender,GridViewSortEventArgse)
   {
       //从事件参数获取排序数据列
       stringsortExpression=e.SortExpression.ToString();

       //假定为排序方向为“顺序”
       stringsortDirection="ASC";

       //“ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改
       if(sortExpression==this.GridView1.Attributes["SortExpression"])
       {
           //获得下一次的排序状态
           sortDirection=(this.GridView1.Attributes["SortDirection"].ToString()==sortDirection?"DESC":"ASC");
       }

       //重新设定GridView排序数据列及排序方向
       this.GridView1.Attributes["SortExpression"]=sortExpression;
       this.GridView1.Attributes["SortDirection"]=sortDirection;

       this.BindGridView();
   }

   ///<summary>
   ///绑定到GridView
   ///</summary>
   privatevoidBindGridView()
   {
       //获取GridView排序数据列及排序方向
       stringsortExpression=this.GridView1.Attributes["SortExpression"];
       stringsortDirection=this.GridView1.Attributes["SortDirection"];

       //调用业务数据获取方法
       DataTabledtBind=this.getDB();

       //根据GridView排序数据列及排序方向设置显示的默认数据视图
       if((!string.IsNullOrEmpty(sortExpression))&&(!string.IsNullOrEmpty(sortDirection)))
       {
           dtBind.DefaultView.Sort=string.Format("{0}{1}",sortExpression,sortDirection);
       }

       //GridView绑定并显示数据
       this.GridView1.DataSource=dtBind;
       this.GridView1.DataBind();
   }

   ///<summary>
   ///获取数据源的方法
   ///</summary>
   ///<returns>数据源</returns>
   privateDataTablegetDB()
   {
       DataTabledt=newDataTable();

       dt.Columns.Add("id");
       dt.Columns.Add("name");
       dt.Columns.Add("age");

       dt.Rows.Add(newobject[]{"000001","hekui","26"});
       dt.Rows.Add(newobject[]{"000002","zhangyu","26"});
       dt.Rows.Add(newobject[]{"000003","zhukundian","27"});
       dt.Rows.Add(newobject[]{"000004","liyang","25"});
       dt.Rows.Add(newobject[]{"000005","caili","27"});

       returndt;
   }
}