实现功能:单击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
分享到:
相关推荐
本知识点将详细介绍如何在GridView中为列添加自定义的排序箭头指示器图片控件,以提供更加直观的用户交互体验。 首先,我们来看标题提到的"自动添加列排序箭头指示器图片控件"。在默认情况下,GridView的列排序功能...
`from.gif`可能是一个图像文件,用于在GridView中显示,例如作为分页控件的箭头图标,或者是表格中的占位符图像。 `51aspx源码必读.txt`可能是一个指南或者阅读源码的提示,对于理解和使用这个开源项目会非常有帮助...
在C#编程中,GridView控件...综上所述,实现C# GridView的排序功能涉及到多个步骤,包括设置允许排序、处理Sorting事件、自定义排序逻辑以及优化性能。理解这些知识点有助于构建一个功能齐全、用户友好的数据展示界面。
可能还需要更新GRIDVIEW的状态,如当前排序列的箭头方向。 6. 如果有进度条,可以使用JavaScript显示和隐藏,以提供更好的用户体验。 通过以上步骤,我们可以实现一个高效的、无刷新的GRIDVIEW排序功能,充分利用...
这种功能常见于需要用户自定义排序的应用场景,比如任务管理器或者日程表。 首先, GridView控件本身并不直接提供内置的行移动事件,但我们可以借助其他手段来实现这个功能。一种常见的方法是利用RowCommand事件和...
// 更新列头的排序指示符(例如箭头) event.target.classList.toggle('ascending'); } }); ``` 在实际应用中,你可能还需要考虑一些优化,比如缓存排序状态,处理复杂数据类型(如日期或数字),以及处理多级...
5. **排序功能**:GridView可以配置为支持列点击排序,但默认样式可能朴素,可以通过CSS调整箭头图标或添加过渡效果。 6. **编辑和删除功能**:GridView可以嵌入EditItemTemplate和DeleteItemTemplate,使得数据的...
只需在`GridView`的列定义中启用`AllowSorting`属性,并在排序事件中处理排序逻辑。 3. **分页功能** - 要实现分页,需设置`AllowPaging`为`true`,并配置`PageSize`属性以设定每页显示的记录数。`...
如果数据源中的数据类型复杂,或者需要自定义排序规则,可以重写数据对象的`Compare`方法或提供自定义比较器。 10. **异步排序** 对于用户体验的提升,可以考虑实现异步排序,即通过AJAX技术,使得排序过程不需...
这对于需要用户自定义排序的应用场景来说,是一项关键特性。 3. **可删除**:DragExpandGrid支持删除功能,用户可以通过简单的手势或操作按钮来移除某个项目,这在数据管理应用中非常实用。 4. **固定列数**:控件...
DragExpandGrid可展开,可拖动,可排序,可删除,固定更多的GridView,展开合并支持动画,支持箭头图标移动。 数据的处理和显示使用Bean,来自于500彩票Andorid客户端首页功能。
在ASP.NET 4.0之前,若要显示当前的排序方向(升序或降序),开发者通常需要手动添加SortAscendingStyle和SortDescendingStyle属性,并配合CSS来创建箭头图标。现在,这些功能已经内置在系统中,简化了开发流程,...
实例211 带上下箭头排序并实现查询数据为 空显示表头 334 实例212 GridView自动求和及合并多列多行 单元格 336 实例213 GridView合并行或列单元格的5种 通用方式 338 实例214 GridView删除数据时弹出确认对话框 (含...
此外,它可能还提供了自定义排序逻辑的能力,以便处理复杂的数据排序需求。 ### 其他特性 除了上述核心功能,SmartGridView可能还包括以下特性: - **分页**:通过分页功能,可以将大量数据分割成小块,改善用户...
- **ColumnHeader样式**:通过定义Style,可以自定义ColumnHeader的外观,比如添加箭头图标来表示当前的排序状态。 5. **代码示例** - 在`MainWindow.xaml.cs`中,你可能会找到类似以下的代码来处理排序: ```...
为了提供更好的用户体验,可以在表头点击时添加一些视觉反馈,如改变字体颜色或添加箭头图标,表示当前排序状态。此外,还可以添加平滑滚动动画,使排序过程更加流畅。 9. **性能优化**: 考虑到性能,尽量避免在...
同时,对于已排序的列,我们可以添加一个特定的CSS类,用不同颜色或图标(如升序或降序箭头)来表示当前的排序状态。 HTML方面,我们可以在列标题中嵌入这些指示图标的HTML代码。例如,使用...
它允许用户对数据进行排序、分页和编辑,同时也支持自定义样式和模板字段,以满足不同设计需求。 要实现“Collapsible panel”(可折叠面板),我们通常会使用HTML的`<div>`元素配合JavaScript或jQuery来创建和控制...
3. 自定义模板:为了呈现树形结构,可能需要自定义GridView的RowTemplate,以便为每行添加展开/折叠按钮或图像。 4. jQuery交互:利用jQuery的DOM操作和事件处理功能,为按钮添加点击事件监听器,当用户点击时,...
在ASP.NET中,GridView提供了丰富的自定义功能,如添加模板列、分页、排序、筛选、编辑、删除等。通过与JavaScript和CSS的配合,我们可以实现更复杂的交互式用户界面。在实际项目中,你还可以结合其他技术,如AJAX,...