`
talentnba
  • 浏览: 92648 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Gridview自定义排序且显示上下箭头

阅读更多

  实现功能:单击Gidview列名按该列升序或降序排列,且在排序列上显示向上来向下箭头示意图片

        //设置Gridview的AllowSorting属性值为true,即允许排序
        <asp:GridView ID="gridview1" runat="server" AutoGenerateColumns="False" EmptyDataText="没有相关记录!" AllowSorting="True" OnSorting="gridview1_Sorting" OnRowCreated="gridview1_RowCreated" >
        </asp:GridView>

        //为要排序的列加上SortExpression属性,其值为绑定的字段,如:
        <asp:BoundField DataField="ID" HeaderText="序号" SortExpression="ID">

        //添加Sorting和RowCreated事件
        <asp:GridView ID="gridview1" runat="server" AutoGenerateColumns="False" EmptyDataText="没有相关记录!" AllowSorting="True" OnSorting="gridview1_Sorting" OnRowCreated="gridview1_RowCreated" >
        </asp:GridView>

       后台代码,创建如下方法:

         //设置默认表达式和排序顺序,放到page_load事件中
        public void SetSorting()
        {
            ViewState["SortExpression"] = "ID";
            ViewState["SortDirection"] = SortDirection.Descending;

        }

        //获取排序列索引
        private int GetSortColumnIndex()
        {
            foreach (DataControlField field in gridview1.Columns)
            {
                if (field.SortExpression == ViewState["SortExpression"].ToString().Trim())
                    return gridview1.Columns.IndexOf(field);
            }
            return -1;
        }

        //添加排序图片
        private void AddSortImage(int columnIndex, GridViewRow headerRow)
        {
            Image sortImage = new Image();
            if ((SortDirection)ViewState["SortDirection"] == SortDirection.Ascending)
            {
                sortImage.ImageUrl ="向上箭头图片的路径";
            }
            else
            {
                sortImage.ImageUrl = "向下箭头图片的路径";
            }

            headerRow.Cells[columnIndex].Controls.Add(sortImage);
        }
       
     
//Gridview的Sorting事件 
      protected void gridview1_Sorting(object sender, GridViewSortEventArgs e)
     {
        if (ViewState["SortExpression"].ToString().Trim() == e.SortExpression)
        {
            if ((SortDirection)ViewState["SortDirection"] == SortDirection.Ascending)
                ViewState["SortDirection"] = SortDirection.Descending;
            else
                ViewState["SortDirection"] = SortDirection.Ascending;
        }
        else
        {
            ViewState["SortExpression"] = e.SortExpression;
            ViewState["SortDirection"] = SortDirection.Descending;
        }
        
        //你绑定Gridview数据的函数
        GvBind();
    }
    //Gridview的RowCreated事件 
    protected void gridview1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Header)
        {
            int sortColumnIndex = GetSortColumnIndex();

            if (sortColumnIndex != -1)
                AddSortImage(sortColumnIndex, e.Row);
        }
    }
   

   最后,还要修改GvBind()函数中的SQL语句

   //将SortDirection转化为SQL语句中的ASC和DESC  

   string sortStr = ((SortDirection)ViewState["SortDirection"] == SortDirection.Descending ? "DESC" : "");

   在原SQL语句后加上order by语句: "order by "+ ViewState["SortExpression"]+" "+sortStr

分享到:
评论

相关推荐

    给ASP.NET中GridView自动添加列排序箭头指示器图片控件源代码

    本知识点将详细介绍如何在GridView中为列添加自定义的排序箭头指示器图片控件,以提供更加直观的用户交互体验。 首先,我们来看标题提到的"自动添加列排序箭头指示器图片控件"。在默认情况下,GridView的列排序功能...

    GridView超级自定义功能开源.rar

    `from.gif`可能是一个图像文件,用于在GridView中显示,例如作为分页控件的箭头图标,或者是表格中的占位符图像。 `51aspx源码必读.txt`可能是一个指南或者阅读源码的提示,对于理解和使用这个开源项目会非常有帮助...

    gridview排序

    在C#编程中,GridView控件...综上所述,实现C# GridView的排序功能涉及到多个步骤,包括设置允许排序、处理Sorting事件、自定义排序逻辑以及优化性能。理解这些知识点有助于构建一个功能齐全、用户友好的数据展示界面。

    利用AJAX 实现GRIDVIEW无刷新 排序源码

    可能还需要更新GRIDVIEW的状态,如当前排序列的箭头方向。 6. 如果有进度条,可以使用JavaScript显示和隐藏,以提供更好的用户体验。 通过以上步骤,我们可以实现一个高效的、无刷新的GRIDVIEW排序功能,充分利用...

    GridView上下移动行事件

    这种功能常见于需要用户自定义排序的应用场景,比如任务管理器或者日程表。 首先, GridView控件本身并不直接提供内置的行移动事件,但我们可以借助其他手段来实现这个功能。一种常见的方法是利用RowCommand事件和...

    Gridview(JS)列头排序-按字母排序

    // 更新列头的排序指示符(例如箭头) event.target.classList.toggle('ascending'); } }); ``` 在实际应用中,你可能还需要考虑一些优化,比如缓存排序状态,处理复杂数据类型(如日期或数字),以及处理多级...

    对GRIDVIEW的美化.zip

    5. **排序功能**:GridView可以配置为支持列点击排序,但默认样式可能朴素,可以通过CSS调整箭头图标或添加过渡效果。 6. **编辑和删除功能**:GridView可以嵌入EditItemTemplate和DeleteItemTemplate,使得数据的...

    GridView控件应用9个经典实例

    只需在`GridView`的列定义中启用`AllowSorting`属性,并在排序事件中处理排序逻辑。 3. **分页功能** - 要实现分页,需设置`AllowPaging`为`true`,并配置`PageSize`属性以设定每页显示的记录数。`...

    GriedView列排序代码

    如果数据源中的数据类型复杂,或者需要自定义排序规则,可以重写数据对象的`Compare`方法或提供自定义比较器。 10. **异步排序** 对于用户体验的提升,可以考虑实现异步排序,即通过AJAX技术,使得排序过程不需...

    DragExpandGrid可展开,可拖动,可排序,可删除,固定更多的GridView,展开合并支持动画,支持箭头图标移动。

    这对于需要用户自定义排序的应用场景来说,是一项关键特性。 3. **可删除**:DragExpandGrid支持删除功能,用户可以通过简单的手势或操作按钮来移除某个项目,这在数据管理应用中非常实用。 4. **固定列数**:控件...

    DragExpandGrid可展开,可拖动,可排序,可删除,固定更多的GridView

    DragExpandGrid可展开,可拖动,可排序,可删除,固定更多的GridView,展开合并支持动画,支持箭头图标移动。 数据的处理和显示使用Bean,来自于500彩票Andorid客户端首页功能。

    ASP.NET4 GridView的四种排序样式详解

    在ASP.NET 4.0之前,若要显示当前的排序方向(升序或降序),开发者通常需要手动添加SortAscendingStyle和SortDescendingStyle属性,并配合CSS来创建箭头图标。现在,这些功能已经内置在系统中,简化了开发流程,...

    第7章 数据绑定控件

    实例211 带上下箭头排序并实现查询数据为 空显示表头 334 实例212 GridView自动求和及合并多列多行 单元格 336 实例213 GridView合并行或列单元格的5种 通用方式 338 实例214 GridView删除数据时弹出确认对话框 (含...

    SmartGridView

    此外,它可能还提供了自定义排序逻辑的能力,以便处理复杂的数据排序需求。 ### 其他特性 除了上述核心功能,SmartGridView可能还包括以下特性: - **分页**:通过分页功能,可以将大量数据分割成小块,改善用户...

    WPF ListView排序功能

    - **ColumnHeader样式**:通过定义Style,可以自定义ColumnHeader的外观,比如添加箭头图标来表示当前的排序状态。 5. **代码示例** - 在`MainWindow.xaml.cs`中,你可能会找到类似以下的代码来处理排序: ```...

    android 表格 排序 源码

    为了提供更好的用户体验,可以在表头点击时添加一些视觉反馈,如改变字体颜色或添加箭头图标,表示当前排序状态。此外,还可以添加平滑滚动动画,使排序过程更加流畅。 9. **性能优化**: 考虑到性能,尽量避免在...

    使用Google Analytics(分析)功能改善GridView排序功能

    同时,对于已排序的列,我们可以添加一个特定的CSS类,用不同颜色或图标(如升序或降序箭头)来表示当前的排序状态。 HTML方面,我们可以在列标题中嵌入这些指示图标的HTML代码。例如,使用...

    ASP.Net GridView Columns with Collapsible panel Embedded

    它允许用户对数据进行排序、分页和编辑,同时也支持自定义样式和模板字段,以满足不同设计需求。 要实现“Collapsible panel”(可折叠面板),我们通常会使用HTML的`&lt;div&gt;`元素配合JavaScript或jQuery来创建和控制...

    ASP.NET源码——GridView+Jquery实现的TreeGrid.zip

    3. 自定义模板:为了呈现树形结构,可能需要自定义GridView的RowTemplate,以便为每行添加展开/折叠按钮或图像。 4. jQuery交互:利用jQuery的DOM操作和事件处理功能,为按钮添加点击事件监听器,当用户点击时,...

    asp.net 设置GridView的选中行

    在ASP.NET中,GridView提供了丰富的自定义功能,如添加模板列、分页、排序、筛选、编辑、删除等。通过与JavaScript和CSS的配合,我们可以实现更复杂的交互式用户界面。在实际项目中,你还可以结合其他技术,如AJAX,...

Global site tag (gtag.js) - Google Analytics