GridView排序状态保持
这几天一直在自测项目,发现一些细节问题,这里再记录一个GridView排序状态的问题。其实算不上问题,只是我自己以前没注意过这种情况,还是经验少。
GridView的Sorting方法在你点击某个Column的时候触发,而如果GridView支持分页,选择分页或者调整分页大小后,GridView会重新Bind,此时会变成默认的排序,不再是之前选中的某个栏位的排序规则。这里其实已经可以看出来了,就是GridView重新绑定的时候,没有获取到当前的排序规则,解决办法也很直观,就是把之前的排序规则保存起来,每次GridView执行Bind的时候,都加上排序规则。
上代码:
#region GridView的排序///<summary>/// GridView的排序///</summary>///<param name="sender"></param>///<param name="e"></param> protected void gdvFiles_Sorting(object sender, GridViewSortEventArgs e) {try {//如果已经存了SortDirection,则已经有过排序 if (ViewState["SortExpression"] != null && ViewState["SortDirection"] != null) { DataPickerEvent.GridViewSorting(this.GetViewStateData<DataTable>("SourceTable" + DocTypeID), gdvFiles, e, GetViewStateData<string>("SortExpression"), GetViewStateData<string>("SortDirection")); }else { DataPickerEvent.GridViewSorting(this.GetViewStateData<DataTable>("SourceTable" + DocTypeID), gdvFiles, e); } SetViewStateData("SortDirection", gdvFiles.Attributes["SortDirection"]); SetViewStateData("SortExpression", gdvFiles.Attributes["SortExpression"]); }catch (Exception ex) {string message = String.Format("SourceFrom gdvFiles_Sorting Error:" + ex.Message); } }#endregion
这个是GridView的Sorting方法,再看一下BindGridView的方法,就知道了:
#region BindGridView///<summary>/// 绑定GridView///<param name="avaliable">是否显示UnAvaliable的记录</param>///</summary> private void BindGridView(bool avaliable) {//获取维度信息 List<DocAttributeEntity> attributeList = GetViewStateData<List<DocAttributeEntity>>("AttributeList" + DocTypeID);if (ViewState["SourceTable" + DocTypeID]!=null) { DynamicShow_gdvFiles(attributeList); DataTable dataSource = GetViewStateData<DataTable>("SourceTable" + DocTypeID); DataTable tableSource = dataSource.Clone();if (!avaliable) { DataRow[] drs = dataSource.Select("File_Status='" + EnumDataHelper.GetEnumString<FileStatus>(FileStatus.Available) + "'"); foreach (DataRow dr in drs) { tableSource.ImportRow(dr); } if (tableSource.Rows.Count > 0) { DataView dv = tableSource.DefaultView;if (ViewState["SortExpression"] != null && ViewState["SortDirection"] != null) {string strSortExpression = ViewState["SortExpression"].ToString();string strSortDirection = ViewState["SortDirection"].ToString(); dv.Sort = strSortExpression + "" + strSortDirection; } this.gdvFiles.DataSource = dv;this.gdvFiles.DataBind();this.gdvFiles.Visible = true;this.divNoSearchResult.Visible = false; }else {this.gdvFiles.Visible = false;this.divNoSearchResult.Visible = true; } }else { if (dataSource.Rows.Count > 0) { DataView dv = tableSource.DefaultView; if (ViewState["SortExpression"] != null && ViewState["SortDirection"] != null) { string strSortExpression = ViewState["SortExpression"].ToString(); string strSortDirection = ViewState["SortDirection"].ToString(); dv.Sort = strSortExpression + " " + strSortDirection; }
this.gdvFiles.DataSource = dv;
this.gdvFiles.DataBind();this.gdvFiles.Visible = true;this.divNoSearchResult.Visible = false; }else {this.gdvFiles.Visible = false;this.divNoSearchResult.Visible = true; } } } }#endregion
转载于:https://www.cnblogs.com/liver.wang/archive/2011/10/26/GridView.html
GridView排序状态保持相关推荐
- 扩展GridView控件(2) - 复合排序和排序状态提示
GridView既强大又好用.为了让它更强大.更好用,我们来写一个继承自GridView的控件. [索引页] [源码下载] 扩展GridView控件(2) - 复合排序和排序状态提示 作者:webab ...
- gridview排序加箭头(二)
用gridview排序的时候,在.NET里是不能被标注的,下面提供如下方法:主要是显示的时候进行了下判断,然后进行不同的排序,这样就给这个gridview加上了排序的箭头,有意思的是<font ...
- asp.net中GridView排序的手动实现
GridView自带了数据排序功能.在设计视图下,只能对GridView的排序数据列和排序方向进行静态设置.如果要自己实现排序功能,在后台程序中,则需要用Attributes方式对GridView的这 ...
- C语言已排序链表插入新节点保持排序状态(附完整源码)
C语言已排序链表插入新节点保持排序状态 C语言已排序链表插入新节点保持排序状态完整源码(定义,实现,main函数测试) C语言已排序链表插入新节点保持排序状态完整源码(定义,实现,main函数测试) ...
- [转]无刷新的ASP.NET AJAX GRIDVIEW排序
有幸看到一个无刷新的AJAX GRIDVIEW排序效果,感觉不错,代码也简单,方便!特奉上来给各位博友参考! 下载源码 本文来源:http://www.cnblogs.com/witer666/arc ...
- GRIDVIEW排序 动态实现和静态实现
用了GRIDVIEW一段时间,发现很多人都在问GRIDVIEW的排序功能,有些朋友在我的QQ群(13536330)里面问我,我觉得有三种方法可以实现,但本文我只讲两种,相信可以满足大家的需要了吧. 1 ...
- GridView选中状态
GridView可以设置选中状态:setselector(),在触摸的时候,该项item会显示该背景. 但是遇到一个需求要用遥控器控制选中状态,直接setSelection(position);却不行 ...
- ASP.NET 2.0中GRIDVIEW排序
在 headertemplate中加一张UP.GIF和DOWN.GIF(就是升序,倒序的示意图) %@ Page Language="C#" %> <!DOCTYPE ...
- JQuery EasyUI Datagrid 清空排序状态(箭头)代码
使用DataGrid排序 结果发现一个不小的问题 $('#mydatagrid').datagrid('options').sortName = ""$('#mydatagrid' ...
- GridView排序404以及SortExpression字符长度限制
今天在做一个统计页面时,因为子查询等某些原因,在进行排序操作时,不能给SortExpression直接复制列名,而是赋值子查询语句,结果在测试时,点击部分列,会直接报错404,debug调试时也不会走 ...
最新文章
- 说说标准服务器架构(WWW+Image/CSS/JS+File+DB)
- 【转载】在对话框中加入属性页
- Linux学习 Unit 4
- Lync Server 2010标准版系列PART6:启用Lync
- 【Java进阶营】Java多线程基础学习(一)
- WPF 学习笔记 路由事件
- Java 基础系列:不变性
- ElasticSearch索引的基本操作命令
- [LeetCode系列] 跳跃问题II
- ios学习:UIToolBar的单独使用
- B2B的用户画像怎么做?
- 微信wxp协议 服务器设置,微信支付
- jQuery实现多选框的全选与反选
- 微信 3.6.0 正式版来了,上班族狂喜!
- 【转】Swagger详解(SpringBoot+Swagger集成)
- R语言ggplot2可视化、在一张图中画出两条曲线(two lines in same ggplot2 graph)、使用pdf函数将ggplot2可视化图像保存到指定目录的pdf格式文件中
- 总结软连接与硬连接的区别
- 棋盘问题 51Nod - 1605
- 解读Git与SVN的区别(集中式VS分布式)
- 2-单选题精选_2009博客-精选专辑