Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在代码隐藏中为ASP.net中的GridView创建排序的代码?_C#_Asp.net_Gridview_Sorting - Fatal编程技术网

C# 在代码隐藏中为ASP.net中的GridView创建排序的代码?

C# 在代码隐藏中为ASP.net中的GridView创建排序的代码?,c#,asp.net,gridview,sorting,C#,Asp.net,Gridview,Sorting,这是页面加载事件的代码 OdbcConnection myConnection; DataSet dataSet = new DataSet(); OdbcDataAdapter adapter; //making my connection myConnection = new OdbcConnection(ConfigurationManager.ConnectionSt

这是页面加载事件的代码

            OdbcConnection myConnection;
            DataSet dataSet = new DataSet();
            OdbcDataAdapter adapter;

            //making my connection
            myConnection = new OdbcConnection(ConfigurationManager.ConnectionStrings  ["ODBC_ConnectionString"].ConnectionString);

            adapter = new OdbcDataAdapter("SELECT * from Company", myConnection);

            adapter.Fill(dataSet, "MyData");

            GridView1.DataSource = dataSet;
            Session["DataSource"] = dataSet;
            GridView1.DataBind();
这是我为PageIndexchange事件编写的代码,一切正常

           DataSet ds = new DataSet();

            if (Session["DataSource"] != null)
                ds = ((DataSet)Session["DataSource"]);

            GridView1.DataSource = ds;
            GridView1.PageIndex = e.NewPageIndex;
            this.GridView1.DataBind();
现在我需要什么代码来创建排序事件

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        ?????????????????????????
    }

Etienne

您可以使用以下方法对数据集进行筛选和排序:

ds.Tables[0].Select(filterExp, sortExp, etc...);
我通常这样做:

 public string SortField {
            get {
                return (string) ViewState["_sortField"];
            }
            set {
                ViewState["_sortField"] = value;
            }
        }
        public string SortDir {
            get {
                return (string) ViewState["_sortDir"];
            }
            set {
                ViewState["_sortDir"] = value;
            }
        }
将执行数据绑定的代码放入另一个方法中,因为您必须在排序、分页和页面首次加载时调用它。例如,将其命名为DoDataBind()。然后是DoDataBind()中的

那么您的事件如下所示:

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) {

            if (e.SortExpression == SortField && SortDir != "desc") {
                SortDir = "desc";
            }
            else {
                SortDir = "asc";
            }

            SortField = e.SortExpression;

            DoDataBind();
        }
<asp:BoundField DataField="FIRSTNAME" 
HeaderText="First Name" SortExpression="FIRSTNAME" />
然后在aspx页面中,您需要指定SortExpression是什么。例如,类似这样的事情:

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) {

            if (e.SortExpression == SortField && SortDir != "desc") {
                SortDir = "desc";
            }
            else {
                SortDir = "asc";
            }

            SortField = e.SortExpression;

            DoDataBind();
        }
<asp:BoundField DataField="FIRSTNAME" 
HeaderText="First Name" SortExpression="FIRSTNAME" />


感谢您的回复……不确定“将您的代码放入另一种方法进行数据绑定”是什么意思?什么代码?你给我的代码?数据绑定网格的代码。所以这个:odbc连接myConnection;数据集=新数据集();OdbcDataAdapter适配器。。。剪adapter.Fill(数据集,“MyData”)//然后是我提到的代码:DataTable dt=dataSet.Tables[0];dt.DefaultView.Sort=SortField…等