ASP.NET 2.0数据处理之高级分页与排序
GridView控件中的"选择"操作纯粹是一个UI概念,它的SelectedIndex属性与表格的可视数据行中的当前被选中的行的索引相对应。如果你启用了表格的分页和排序功能,在执行分页或排序操作之后,SelectedIndex的值仍然不会变化,因此在执行这些操作之后,一个新数据行被选中了。在某些环境下,保留对指定数据行的选中更好,即使该行在表格的当前页面中并不可视。下面的例子演示了如何在排序和分页操作之后仍然保留当前选中的数据行。Sub;GridView1_DataBound(ByVal;sender;As;Object,;ByVal;e;As;System.EventArgs) Dim;Row;As;GridViewRow Dim;SelectedValue;As;String;=;ViewState("SelectedValue") If;SelectedValue;Is;Nothing;ThenReturn End;If; ';检测选择的行是哪个并重新选中它 For;Each;Row;In;GridView1.RowsDim;KeyValue;As;String;=;GridView1.DataKeys(Row.RowIndex).ValueIf;(KeyValue;=;SelectedValue);Then GridView1.SelectedIndex;=;Row.RowIndexEnd;If NextEnd;SubProtected;Sub;GridView1_SelectedIndexChanged(ByVal;sender;As;Object,;ByVal;e;As;System.EventArgs) ';保存选中行的索引 If;(Not;GridView1.SelectedIndex;=;-1);ThenViewState("SelectedValue");=;GridView1.SelectedValue End;IfEnd;SubProtected;Sub;GridView1_PageIndexChanging(ByVal;sender;As;Object,;ByVal;e;As;System.Web.UI.WebControls.GridViewPageEventArgs) ';重置选中索引 GridView1.SelectedIndex;=;-1End;SubSub;GridView1_Sorting(ByVal;sender;As;Object,;ByVal;e;As;System.Web.UI.WebControls.GridViewSortEventArgs) ';重置选择索引 GridView1.SelectedIndex;=;-1End;Sub;GridView和DetailsView还支持一种用于分页和排序的特殊模式,它利用客户端向服务器的回调(callback)操作来获取新页面的数据或最近排序过的数据。要激活这个特性,必须把EnableSortingAndPagingCallbacks属性设置为真。请注意,当我们执行分页或排序操作的时候,页面不需要发回(postback)以检索新值(尽管执行了客户端脚本向服务器的回调操作)。当GridView或DetailsView包含模板字段的时候是不支持这个特性的。当这个特性被激活的时候,不支持在CommandField(命令字段)中显示"选择"按钮。<asp:GridView;AllowPaging="True";AllowSorting="True";AutoGenerateColumns="False";DataKeyNames="au_id";DataSourceID="SqlDataSource1";EnableSortingAndPagingCallbacks="True";ID="GridView1";runat="server">……</asp:GridView>;尽管GridView、DetailsView和FormView为分页器(pager)UI提供了默认的显示方式,你仍然可以通过设置PagerTemplate属性来自定义分页器的显示。在这个模板中,你可以放置按钮控件,并把它的CommandName属性设置为Page,把它的属性设置为First、Prev、Next、Last或<number>,其中<number>是特定页面的索引值。下面的例子演示了GridView和DetailsView控件定义的PagerTemplate。<PagerTemplate><asp:LinkButton;CommandName="Page";CommandArgument="First";ID="LinkButton1";runat="server";Style="color:;white"><<;First</asp:LinkButton><asp:LinkButton;CommandName="Page";CommandArgument="Prev";ID="LinkButton2";runat="server";Style="color:;white"><;Prev</asp:LinkButton>[Records;<%=;GridView1.PageIndex;*;GridView1.PageSize;%>;-;<%=;GridView1.PageIndex;*;GridView1.PageSize;+;GridView1.PageSize;-;1;%>]<asp:LinkButton;CommandName="Page";CommandArgument="Next";ID="LinkButton3";runat="server";Style="color:;white">Next;></asp:LinkButton><asp:LinkButton;CommandName="Page";CommandArgument="Last";ID="LinkButton4";runat="server";Style="color:;white">Last;>></asp:LinkButton>;</PagerTemplate>;
相关文章:
热门推荐
- ASP编程点滴:包含文件
- 1.JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
- 2.如何解决vue2.0下IE浏览器白屏问题
- 3.Javascript使用HoTMetal(1)实例教程
- 4.jQuery点击页面其他部分隐藏下拉菜单功能
- 5.浅谈JavaScript find 方法不支持IE的问题
- 6.IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
- 7.打开网页的时候提示: Internet Explorer 无法打开 Internet站点已终止操作
- 8.Yii2.0 rules验证规则大全
- 9.jQuery如何解决IE输入框不能输入的问题
- 10.最短JS判断是否为IE6(IE的写法)