gridview自定义绑定字段实现排序功能

来源:互联网 发布:神虎数据恢复 破解版 编辑:程序博客网 时间:2024/04/29 01:57

 <asp:BoundField DataField="danwei_name" HeaderText="单位"
                SortExpression="danwei_name" />

或在GRIDVIEW中 -编辑列-选择要排序的字段,找到SortExpression排序表达式中加入要填写的字段

 思路:使用ViewState将排序前状态保存,在if (!IsPostBack)
        {
            ViewState["SortOrder"] = "序列号";//排序时
            ViewState["OrderDire"] = "ASC";

        }

 

 protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)//对序列号进行双向排序
     {//先编辑列,将序列号的SortExpress写成其字段host_sn
         string sPage = e.SortExpression;
        if (ViewState["SortOrder"].ToString() == sPage)
        {
            if (ViewState["OrderDire"].ToString() == "Desc")
                ViewState["OrderDire"] = "ASC";
            else
                ViewState["OrderDire"] = "Desc";
        }
        else
        {
            ViewState["SortOrder"] = e.SortExpression;
        }
       bind ();//排序后的绑定
    }

public void bind()//排序时的绑定
    {
string sqlstr = ViewState ["querystr"].ToString ();
              SqlDataAdapter myda = new SqlDataAdapter(sqlstr, conn );
        DataSet myds = new DataSet();
                myda.Fill(myds, "terminal");
        DataView view = myds.Tables["terminal"].DefaultView;
        string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
        view.Sort = sort;//dataview排序顺序
        GridView1.DataSource = view;
        GridView1.DataBind();
           }

原创粉丝点击