zoukankan      html  css  js  c++  java
  • GridView字段排序

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

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

    <%@ Import Namespace="System.Data" %>

    <script runat="server">

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ViewState["SortExpression"] = "ID";//第一次加载时,默认按ID排序
                ViewState["SortDir"] = "ASC";//排序方式为升序
                DBind();
            }
        }
        
        protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
        {
            //首先判断当前的排序表达式(字段),是否为当前当前的表达式。。。
            if (ViewState["SortExpression"].ToString() == e.SortExpression.ToString())
            {
                //判断当前的排序方式是否为倒序(DESC),如果是则将排序方式设为升序(ASC),原因是:因为我们要做双向排序!
                if (ViewState["SortDir"].ToString() == "DESC")
                {
                    ViewState["SortDir"] = "ASC";
                }
                else
                {
                    ViewState["SortDir"] = "DESC";
                }
            }
            else
            {
                ViewState["SortExpression"] = e.SortExpression; //将触发到表达式赋值给ViewState["SortExpression"];
            }
            DBind();
        }

        protected static DataTable CreateTable()
        {
            DataTable dt = new DataTable("DtName");
            dt.Columns.Add("ID");
            dt.Columns.Add("Name");
            dt.Columns.Add("Random");
            DataRow dr;
            Random rd = new Random();

            for (int i = 0; i < 30; i++)
            {
                dr = dt.NewRow();
                dr["ID"] = i;
                dr["Name"] = "Item" + i.ToString();
                dr["Random"] = 1.23 * rd.Next(20);
                dt.Rows.Add(dr);
            }
            return dt; //返回一个DataTable的数据集
        }

        private void DBind()
        {
            DataView dv = new DataView(CreateTable());
            dv.Sort = (string)ViewState["SortExpression"] + " " + ViewState["SortDir"].ToString(); //设置数据源的排序表达式
            this.GridView1.DataSource = dv;
            this.GridView1.DataBind();
        }
        
    </script>

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>双向排序(ASC & DESC)</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server" OnSorting="GridView1_Sorting" AllowSorting="True">
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>

  • 相关阅读:
    Hdu5093 Battle ships 二分图
    Hdu 4081 最小生成树
    POJ1201 Intervals差分约束系统(最短路)
    poj1222 EXTENDED LIGHTS OUT 高斯消元||枚举
    Gym 100814C Connecting Graph 并查集+LCA
    Fzu2109 Mountain Number 数位dp
    poj 2774 Long Long Message 后缀数组基础题
    Uva12206 Stammering Aliens 后缀数组&&Hash
    hdu 3518 Boring counting 后缀数组基础题
    数据结构复习之开题篇(持续更新)
  • 原文地址:https://www.cnblogs.com/nyth/p/1993536.html
Copyright © 2011-2022 走看看