当前位置: 首页 > 编程日记 > 正文

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 Then
  Return
 End If
 ' 检测选择的行是哪个并重新选中它
 For Each Row In GridView1.Rows
  Dim KeyValue As String = GridView1.DataKeys(Row.RowIndex).Value
  If (KeyValue = SelectedValue) Then
   GridView1.SelectedIndex = Row.RowIndex
  End If
 Next
End Sub

Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
 ' 保存选中行的索引
 If (Not GridView1.SelectedIndex = -1) Then
  ViewState("SelectedValue") = GridView1.SelectedValue
 End If
End Sub

Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs)
 ' 重置选中索引
 GridView1.SelectedIndex = -1
End Sub

Sub GridView1_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs)
 ' 重置选择索引
 GridView1.SelectedIndex = -1
End 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>

相关文章:

rpcgen的简单讲解及例子程序

rpcgen 简介 rpcgen可以自动生成RPC服务器程序的大多数代码,它的输入为一个规格说明文件,它的输出为一个C语言的源程序。规格文件(*.x)包含常量、全局数据类型以及远程过程的声明。Rpcgen产生的代码包含了实现客户机和服务器程序所…

Python 捕获警告

来源 | 写代码的明哥责编 | 寇雪芹头图 | 下载于视觉中国警告不是异常你是不是经常在使用一些系统库或者第三方模块的时候,发现一些既不是异常也不是错误的警告信息?这些经常出现的警告信息,容易让新手造成一些误判,以为是程序出错…

python装饰器+迭代器+生成器

1.函数嵌套:在调用一个函数的过程中,调用了其他函数 def f1():x1def f2():print(from f2)f2() f1() 2.名称空间与作用域 a. 名称空间:存放名字与变量值绑定关系的地方 (1)内置名称空间:在python解释器启动…

ASP.NET中绑定枚举类型

在项目开发中好多地方用了枚举,要把枚举显示到下拉列表框中我们平常的方法就是在下拉列表控件中一个一个添加进去!这样做也行但如果我的枚举类型中的枚举值一旦改变,那么你就得满世界的去找然后再修改很麻烦。这里我有反射动态的绑定枚举值就…

Java 领域offer收割:程序员黄金 5 年进阶心得!

怎样才能拿到大厂的offer?没有掌握绝对的技术,那么就要不断的学习。如何拿下阿里等大厂的offer的呢,今天分享一个秘密武器,资深架构师整理的Java核心知识点,面试时面试官必问的知识点,篇章包括了很多知识点…

视频专辑:Photoshop基础视频教程

为什么80%的码农都做不了架构师?>>> 专辑:Photoshop基础视频教程 简介:Photoshop基础视频教程 1 1. 软件界面介绍 [photoshop基础教程] 2013-10-31 11:56 | 播放(6) | 评论(0) | 时长:42:44 2 2. 工行LOGO分析及制作1 [photoshop基础教程…

linux运维如何月薪过万?(收藏自用)

作者:汤哥在北京链接:https://www.zhihu.com/question/27505552来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。IT行业,是近些年相当火的一个专业,从事于IT行业的工作人员也…

当深度学习遇上图: 图神经网络的兴起 | 赠书

什么是图也许我们从来没有意识到,我们正生活在一个充满图的世界。例如,我们最熟悉的社交网络(如下图所示),就是一个最典型的图。在计算机领域,我们通常用图指代一种广义的抽象结构,用来表示一堆…

Asp.net 2.0 中将网站首页生成静态页的一个比较好的方法

做网站时,有时为了提高性能会将网站首页生成静态页(当然, Asp.net中页面缓存也是一个不错的选择了 将页面生成静态的方法有多中,据不完全统计有N种(N>1) 呵呵 以下的方法来自 "孟子E " 解释的方法 代码如下 protected override void Render(HtmlTextWriter wri…

[转]解决Eclipse中编辑xml文件的智能提示问题

转自:http://hi.baidu.com/cghroom/item/48fd2d0dc1fc23c675cd3c3e 摘要: Eclipse for Android xml 文件代码自动提示功能,介绍Eclipse 编辑器中实现xml 文件代码自动智能提示功能,解决eclipse 代码提示失效、eclipse 不能自动提…

温水里的程序员,技术将淘汰一切。

七月,炎炎的夏日,疯狂的暴雨不分昼夜,侵袭着这座城。早上七点,我骑着摩拜单车出发去往地铁站,誓死如归一般的,挤进地铁。像往常一样,骑车、挤地铁、打卡上班。相 信大家都跟我一样,未…

ASP.net 2.0下应用程序离线信息

ASP.net 2.0 有一个新特性,就是支持应用程序离线信息。 什么是离线信息呢?以前我们在更新应用程序,导至asp.net应用程序重启,应用程序的用户通常会显示不友好的错误信息,或者IE一直显示加载状态。 ASP.net 2.0支持您…

Lync server 2013 之office web apps server 搭建步骤

office web apps server 搭建步骤:一、.NET Framework 4.5 节点下的HTTP 激活.NET Framework 3.5Windows Identity Foundation 3.5Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-Conte…

360数科发布2020全年财报:全年收入上涨47.1%,科技为运营效率提供第一动力

3月16日,360数科发布2020年第4季度及全年未经审计的财务报告。2020财年,360数科实现收入135.64亿元,较2019年92.2亿元增长47.1%;非美国会计准则(Non-GAAP)下净利润为37.97亿元,较2019年27.52亿元…

内存分配器memblock【转】

转自:http://blog.csdn.net/kickxxx/article/details/54710243 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[-] 背景 Data structurememblock initializationmemblock API memory和reserved regionmemblock_reservedmemblo…

with admin option /with grant option

1. with admin option是用在系统权限上的,with grant option是用在对象权限上的。 SQL> grant create synonym to scott with grant option;grant create synonym to scott with grant option *第 1 行出现错误:ORA-01939: 只…

第四层到第七层的高层交换技术及其应用

1 前言Internet的特点就是不断变化发展,目前网络上的信息量和业务量都呈现爆炸性的增长趋势。不断增长的负荷和新需求的出现,使得用单台服务器处理应用服务的结构已成为过去,取而代之的是以单一虚拟IP地址(VIP)来代表整个服务器集群&#x…

赠书 | 315之后,无人旁观时我们是谁

315的曝光,让人脸信息被随意采集、简历被低价出卖等话题受到公众热议。然而,不知道有多少人,直到这一场晚会才知道,原来自己始终是被悄悄“出卖”的人。智联招聘声称拥有1.8亿用户,视用户信息安全与隐私保护为自己“生…

bugzilla部署

Centos6.8部署bugzilla apache mysql1.apache可以使用系统自带的apache服务2.安装mysql:yum –y installmysql mysql-server //使用yum安装vi /etc/my.cnf //编辑mysql配置文件default-character-set utf8 //在mysql_safe段添加字符集支持service mysq…

ASP.NET 2.0 AJAX中Webservice调用方法示例

ASP.NET 2.0 AJAX中能够在客户端js中很方便地调用服务器Webservice,以下为一些调用的示例。笔者安装的ASP.NET 2.0 AJAX 版本为AJAX November CTP。 三个示例分别为:1 带参数的WS方法2 不带参数的WS方法3 参数类型为DataTable的WS方法一、WebMethod注意…

Python 玩出花儿,把罗小黑养在自己桌面

作者 | 李秋键责编 | 寇雪芹出品 | AI科技大本营(ID:rgznai100)引言:了解过我们之前文章的都知道我们曾经做过一个智能桌宠项目。但是很显然那个程序过于卡段。故这一次我们将重新制作个智能桌宠项目,不同于之前的项目在于&#x…

Google推荐的15条HTML 5代码军规----来看看你知道几个,我一个都不知道。。。

Google规范的原文链接大家可以访问:http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml  1.协议头:  建议在指向图片或其他媒体文件、样式表和脚本的URL地址中省略http:https:协议部分,除非已知相应文件不能…

OTS parsing error: invalid version tag woff和ttf文件被Filter拦截

从服务器下载的字体文件放在本地,执行无法展示iconfont,浏览器控制台报出 Failed to decode downloaded font: http://127.0.0.1:8080/mhr/group-assets/iconfont/iconfont.ttf?t1500884389272login_group.html:1 OTS parsing error: invalid version t…

asp.net 的性能计数器

ASP.NET 支持两组性能计数器:系统和应用程序。前者在 ASP.NET 性能计数器对象中的 PerfMon 中公开;后者在 ASP.NET Applications 性能对象中公开。ASP.NET 性能对象中的 State Server Sessions 计数器(仅适用于在其中运行状态服务器的服务器计…

为什么那么多程序员不敢学Python?

Python入门从哪开始?90%以上的书上都是这样讲的:先介绍 Python 的基本语法规则、list、dict、tuple 等数据结构,然后再介绍字符串处理和正则表达式,介绍文件等IO操作.... 就这样一点一点往下说。然而这种按部就班的学习方法&#…

5 配置邮箱服务器

配置邮箱服务器 一邮箱服务器角色 当Exchange邮件服务器使用一段时间后可能面临以下几个问题:邮箱服务器的磁盘空间出现不足、如何将数据库文件移到新的硬盘上、如何共享一些文件给指定的人;为了解决这些问题,我们就要了解邮箱服务器中的邮件…

mongodb 连接和备份

2019独角兽企业重金招聘Python工程师标准>>> 1.查询某一列的值: db.collection_name.find({},{key:1,key1:0}) 第一个 {} 放 where 条件,为空表示返回集合中所有文档 第二个 {} 指定那些列显示和不显示 (0表示不显示 1表示显示[非0都是显示])…

HTTP和SOAP完全就是两个不同的协议

HTTP只负责把数据传送过去,不会管这个数据是XML、HTML、图片、文本文件或者别的什么。而SOAP协议则定义了怎么把一个对象变成XML文本,在远程如何调用等,怎么能够混为一谈。 这样说两种协议: HTTP就是邮局的协议,他…

对网络骚扰和霸凌说不!神经网络可以做得更好

导语:无论在论坛、评论区还是游戏聊天界面,网络骚扰和网络霸凌都是一件让人烦恼的事。怎样避免这些烦人的问题?也许本文介绍的神经网络模型,可以对于使用AI技术手段解决这些问题有所启示。译者 | Rachel头图 | 下载于东方 IC出品 …

主机入侵防御系统(HIPS)分析

主机入侵防御系统(Host Intrusion Prevent System,HIPS)是近几年出现并迅速发展的新兴产物,与传统意义的防火墙和杀毒软件不同,它并不具备特征码扫描和主动杀毒等功能,所以想用它来替换传统杀毒软件然后安枕…