gridview按照表头排序

本文介绍如何在ASP.NET中使用GridView控件实现数据排序功能,包括启用排序、设置排序表达式及实现Sorting事件处理等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. gridview允许排序

     AllowSorting="True"

 

2. 设置列的排序表达式

 <asp:BoundField DataField="name" HeaderText="视图" SortExpression="name" >
                                <HeaderStyle Wrap="False" />
                                <ItemStyle HorizontalAlign="Left" />
                            </asp:BoundField>

 

   其中,sortExpression时排序表达式,headerStyle wrap设置表头不换行,horizontalAlign设置该列的文本对齐方式。

 

3.实现sorting事件

 protected void gdvSchema_Sorting(object sender, GridViewSortEventArgs e)
    {

       //获取排序表达式
        String exp = e.SortExpression;

       //保存在viewState中

        ViewState["sortExp"] = exp;

       //重新绑定数据源
        gdvSchema.DataBind();
        getSearch(0);

    }

//绑定数据源的函数

private void getSearch(int iPageIndex)
    {

       //获取数据源
        String sql= "select * from test";

        SqlDataAdapter adp = new SqlDataAdapter (sql,conn);

        DataSet ds = new DataSet();
        adp.Fill(ds);

 

        if (ds.Tables.Count > 0)
        {

           try
           {

           DataTable dt = ds.Tables[0];
            if (dt.Rows.Count > 0)
            {
                //字段排序代码
                DataView dv = new DataView(dt);
                if (ViewState["sortExp"] != null)
                    dv.Sort = ViewState["sortExp"].ToString();
                gdvSchema.DataSource = dv;


                gdvSchema.PageIndex = iPageIndex;
                gdvSchema.DataBind();
            }
            else
            {
               

                   //无数据时处理方式
                    dt.Rows.Add(dt.NewRow());
                    gdvSchema.DataSource = ds;
                    gdvSchema.DataBind();
                    gdvSchema.Rows[0].Cells.Clear();
                    TableCell cell = new TableCell();
                    cell.Text = "未找到任何数据";
                    gdvSchema .Rows [0].Cells.Add(cell);
                    gdvSchema.Rows[0].Cells[0].ColumnSpan = dt.Columns.Count;
                    gdvSchema.Rows[0].Cells[0].HorizontalAlign = HorizontalAlign.Center;
             }

           }
                catch (Exception ex)
                {
                    Response.Write("getSearch() Exception: " + ex);
                }

        }

    }

 

 

PS:gridview执行sorting事件时会同时执行rowCommand事件,所以在执行的时候需要保证rowCommand中不执行会抛异常的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值