• Gridview手动排序


    在asp.net 2.0中,如果是使用gridview的话,可以要对gridview进行排序的话,可以配合sqldatasource来使用,已经内建了排序的功能(即点列标题进行排序),但如果要配合其他数据源控件的话,则必须使用
    自定义的排序方法了,今天学习到了如何用dataset搭配gridview的话,进行标题排序,现将其方法摘录如下:
         首先,用一个方法将数据取出来,放到DATASET里去,如下代码
    private DataSet GetData()

    {

    SqlConnection myConnection = new SqlConnection(ConnectionString);

    SqlDataAdapter ad = new SqlDataAdapter("SELECT * FROM Categories", myConnection);

    DataSet ds = new DataSet();

    ad.Fill(ds);

    return ds;

    }
    然后,对gridview进行如下设置
      <asp:GridView ID="GridView1" runat="server" AllowSorting="True" OnSorting="GridView1_Sorting">
    </asp:GridView>

         然后,其gridview_sorting的自定义过程如下,首先添加一个属性
        public SortDirection GridViewSortDirection
    {

    get

    {

    if (ViewState["sortDirection"] == null)

    ViewState["sortDirection"] = SortDirection.Ascending;

    return (SortDirection) ViewState["sortDirection"];

    }

    set { ViewState["sortDirection"] = value; }

    }

         GridViewSortDirection 是一个简单的属性,用viewstate保存每次排序的方向
    GridView1_Sorting的代码如下:
        protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {

    string sortExpression = e.SortExpression;

    if (GridViewSortDirection == SortDirection.Ascending)

    {

    GridViewSortDirection = SortDirection.Descending;

    SortGridView(sortExpression, DESCENDING);

    }

    else

    {

    GridViewSortDirection = SortDirection.Ascending;

    SortGridView(sortExpression, ASCENDING);

    }

    }
        在这里,首先得到用户点击要排序列的标题,然后判断当前gridviewsortdirection的属性值来判断,如果已经是升序的话,则设置GridViewSortDirection为降序,并调用一个sortgridview过程;否则默认是调用升序来排序;
        而sortgridview方法如下:
        private void SortGridView(string sortExpression,string direction)
    {

    DataTable dt = GetData().Tables[0];

    DataView dv = new DataView(dt);

    dv.Sort = sortExpression + direction;

    GridView1.DataSource = dv;

    GridView1.DataBind();

    }
        在这里,接收两个参数,分别是sortExpression和direction,然后构成dataview进行排序,十分好理解

    GridView启用了排序,但是标题字段不能单击。。。9首先:   
       AllowSorting="True"     
        
       然后:   
       <asp:BoundField    DataField="Ssex"    HeaderText="test"    SortExpression="sex"    ItemStyle-HorizontalAlign="Center"/>   
                                                               <asp:BoundField    DataField="Ppower"    HeaderText="test"    SortExpression="power"    />   
                                                               <asp:BoundField    DataField="Sstate"    HeaderText="test"    SortExpression="isonline"      ItemStyle-HorizontalAlign="Center"    />   
                                                               <asp:BoundField    DataField="topics"    HeaderText="test"    SortExpression="topics"    />   

    转载自:http://hi.baidu.com/vmusicworm/blog/item/6760852ae9823d99023bf662.html

  • 相关阅读:
    Hibernate_条件查询客户列表
    Hibernate_添加联系人练习
    Linux目录的切换
    CentOS6.5在VMware中安装
    一个关于vue+mysql+express的全栈项目(三)------ 登录注册功能的实现(已经密码安全的设计)
    一个关于vue+mysql+express的全栈项目(二)------ 前端构建
    基于vue实现模糊匹配(这里以邮箱模糊匹配为例,其他的模糊匹配都可以类比)
    一个关于vue+mysql+express的全栈项目(一)
    关于Google浏览器Unable to preventDefault inside passive event listener due to target being treated as passive.的解决方案
    在移动端H5开发中(关于安卓端position:fixed和position:absolute;和虚拟键盘冲突的问题,以及解决方案)
  • 原文地址:https://www.cnblogs.com/liujuncm5/p/961455.html
Copyright © 2020-2023  润新知