gridview的sort_GRIDVIEW排序的动态实现...
前台注意点:
需要对GridView启用AllowSorting、设置OnSorting事件,对需要排序的列设定SortExpression属性。
(后台)
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 设定初始排序参数值
// 错误的属性设置方法:SortExpression、SortDirection均是GridView只读属性,无法直接赋值。
//this.GridView1.SortExpression = "id";
//this.GridView1.SortDirection = "ASC";
// 正确的属性设置方法
this.GridView1.Attributes.Add("SortExpression", "id");
this.GridView1.Attributes.Add("SortDirection", "ASC");
// 绑定数据源到GridView
this.BindGridView();
}
}
///
/// GridView排序事件
///
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
// 从事件参数获取排序数据列
string sortExpression = e.SortExpression.ToString();
// 假定为排序方向为“顺序”
string sortDirection = "ASC";
// “ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改
if (sortExpression == this.GridView1.Attributes["SortExpression"])
{
//获得下一次的排序状态
sortDirection = (this.GridView1.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");
}
// 重新设定GridView排序数据列及排序方向
this.GridView1.Attributes["SortExpression"] = sortExpression;
this.GridView1.Attributes["SortDirection"] = sortDirection;
this.BindGridView();
}
///
/// 绑定到GridView
///
private void BindGridView()
{
// 获取GridView排序数据列及排序方向
string sortExpression = this.GridView1.Attributes["SortExpression"];
string sortDirection = this.GridView1.Attributes["SortDirection"];
// 调用业务数据获取方法
DataTable dtBind = this.getDB();
// 根据GridView排序数据列及排序方向设置显示的默认数据视图
if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
{
dtBind.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
}
// GridView绑定并显示数据
this.GridView1.DataSource = dtBind;
this.GridView1.DataBind();
}
///
/// 获取数据源的方法
///
/// 数据源
private DataTable getDB()
{
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
dt.Columns.Add("age");
dt.Rows.Add(new object[] { "000001", "hekui", "26" });
dt.Rows.Add(new object[] { "000002", "zhangyu", "26" });
dt.Rows.Add(new object[] { "000003", "zhukundian", "27" });
dt.Rows.Add(new object[] { "000004", "liyang", "25" });
dt.Rows.Add(new object[] { "000005", "caili", "27" });
return dt;
}
}
gridview的sort_GRIDVIEW排序的动态实现...相关推荐
- gridview的sort_GridView排序:SortDirection始终升序
我有一个gridview,当用户单击标题时,我需要对其元素进行排序. 它的数据源是一个List对象. aspx是这样定义的: AutoGenerateColumns="false" ...
- gridview的sort_Gridview分页后排序
Gridview 点击排序字段, 对分页后的数据根据排序字段进行升降排序 GridView 我用的是默认分页 , 排序的代码如下: protected void gvResult_Sorting(ob ...
- gridview的sort_GridView实现自动排序带上下箭头
GridView排序 ForeColor="#333333" GridLines="None" AllowSorting="True" On ...
- GridView正反双向排序
点击GridView的标题,实现相应字段的正向.逆向排序. 1. 首先设置GridView的属性,触发GridView的事件. 设置GridView的AllowSorting属性为True, 设置各列 ...
- android gridview拖动排序,Asp.net GridView 拖拽排序 原创(欢迎拍砖,敬请嘴下留情!)...
原理:客户端排序(或者说组织新的排序顺序),Ajax 更新服务器端数据. 客户端用jquery插件sortable实现拖拽排序,保存之前检索顺序变化了的数据,并组织成Json数据,用AJax传送到服务 ...
- VB实现6大排序算法---动态过程展示(建议收藏)
VB实现6大排序算法:插入排序.基数排序.快速排序.希尔排序.选择排序.归并排序.可以随机生成指定个数的数据,显示排序过程,给出排序结果,计算排序算法消耗的时间. 生成随机数: 排序结果: 插入排序: ...
- 十大经典排序算法(动态演示+代码)
时间复杂度是指程序执行函数或方法的效率常用大写的O表示,比如执行一个循环我们记做O(n),执行一个加法运算或者执行一个if操作我们记为O(1). 时间.空间复杂度比较 1 冒泡排序 算法思想: ...
- Linq学习——gridview实现双向排序
前端代码: 添加一个gridview,将AllowSorting属性设置为true,在gridview每一列的SortExpression属性中添加相应的值,生成的代码如下: <asp:Grid ...
- 数据结构 --- 超全的排序总结--八大排序,动态图,代码
目录
- GridView实战一:自定义分页、排序、修改、插入、删除
前言: 在某次公司面试时被问到对GridView操作的熟悉程度,在那之前一直用Repeater内嵌table标签对GridView操作确实很少,于是最近在项目的后台上对GridView进行了一番实操, ...
最新文章
- FPGA开发综合技巧
- Shell 去掉文本中的空格
- 2021年中国计算机视觉人才调研开启啦,诚邀各位开发者们参与~
- 微信小程序获取用户的 OpenId (附前端代码)
- python期末知识点_史上最全的Python知识点整理之基本语法
- 从DataTable导出Excel,并下载,删除Excel进程。
- 读大道至简第五章有感
- 花了 4 天,破解 UNIX 联合创始人 39 年前的密码!
- 寻找优秀的AI公司与受人尊敬的资本助推者 | 量子位年度评选进行时
- Elasticsearch之中文分词器
- C# 中intptr用法
- 线性分类器及Python实现
- 服务器IIS6/IIS7、Nginx、Apache屏蔽垃圾爬虫UA禁止垃圾爬虫,屏蔽指定UA
- 用计算机制作演示文稿教案博客,《创作演示文稿》教学设计
- 爬虫小程序 - 单词量测试
- CentOS 8上安装Docker
- 使用TLC2543来读取电压
- java 混淆_Java 混淆那些事(一):重新认识 ProGuard
- Launcher的简单讲解一
- 苹果和安卓正确的卸载软件方法分享