datagrid分页问题(前后跳页)《控件版》
在CSDN上看了很多的DATAGRID分页问题,当然DATAGRID有自己的分页项,功能是很有限的,我也在CSDN上看了很多自己分页的代码,发现都是用C#写的,我写了一个用ASP。NET中VB语言写的。以下代码供大家参考。
HTML代码:
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="DataGridPage.ascx.vb" Inherits="datagridfenye.DataGridPage" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<LINK href="../css/style.css" type="text/css" rel="stylesheet">
<FONT face="MS UI Gothic"></FONT>
<asp:panel id="divPanel" ForeColor="Blue" CssClass="font2" HorizontalAlign="Left" Width="84.16%"
runat="server" Visible="True">
<asp:Button id="btnNavFirst" runat="server" BorderStyle="Ridge" Text="初頁" CommandName="FIRST"
BorderWidth="1px" CausesValidation="False" BackColor="#E0E0E0" Font-Size="XX-Small"></asp:Button>
<asp:Button id="btnNavPrevious" runat="server" BorderStyle="Ridge" Text="前頁" CommandName="PREVIOUS"
BorderWidth="1px" CausesValidation="False" BackColor="#E0E0E0" Font-Size="XX-Small"></asp:Button>
<asp:Button id="btnNavNext" runat="server" BorderStyle="Ridge" Text="次頁" CommandName="NEXT"
BorderWidth="1px" CausesValidation="False" BackColor="#E0E0E0" Font-Size="XX-Small"></asp:Button>
<asp:Button id="btnNavLast" runat="server" BorderStyle="Ridge" Text="末頁" CommandName="LAST"
BorderWidth="1px" CausesValidation="False" BackColor="#E0E0E0" Font-Size="XX-Small"></asp:Button><INPUT id="hdRowCount" style="WIDTH: 43px; HEIGHT: 22px" type="hidden" size="1" name="Hidden1"
runat="server"> <INPUT id="hdCurrentIndex" style="WIDTH: 48px; HEIGHT: 22px" type="hidden" size="2" value="0"
name="Hidden1" runat="server">
<asp:Label id="LabelMsg" ForeColor="Blue" Width="232px" runat="server"></asp:Label>GOTO
<asp:TextBox id="tbPage" Width="31px" runat="server"></asp:TextBox>
<asp:Label id="LabelMsg2" ForeColor="Blue" runat="server">頁</asp:Label>
<asp:Button id="btnNavGo" runat="server" BorderStyle="Ridge" Text="確定" CommandName="GO" BorderWidth="1px"
CausesValidation="False" BackColor="#E0E0E0" Font-Size="XX-Small"></asp:Button></asp:panel>
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="DataGridPage.ascx.vb" Inherits="datagridfenye.DataGridPage" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
WEB代码:
Imports System
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Web
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Public Delegate Sub BindDataDelegate()
Public Class DataGridPage
Inherits System.Web.UI.UserControl
#Region " Web フォーム デザイナで生成されたコード "
'この呼び出しは Web フォーム デザイナで必要です。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Public binddata1 As BindDataDelegate
Private _dg As DataGrid
Private _autohidden As Boolean = True
Private _pagesize As Integer = 10
Private _itemcount As Integer = 0
Private _dispStyle As Integer = 1
Protected WithEvents LabelMsg As System.Web.UI.WebControls.Label
Protected WithEvents btnNavFirst As System.Web.UI.WebControls.Button
Protected WithEvents btnNavPrevious As System.Web.UI.WebControls.Button
Protected WithEvents btnNavNext As System.Web.UI.WebControls.Button
Protected WithEvents btnNavLast As System.Web.UI.WebControls.Button
Protected WithEvents tbPage As System.Web.UI.WebControls.TextBox
Protected WithEvents LabelMsg2 As System.Web.UI.WebControls.Label
Protected WithEvents btnNavGo As System.Web.UI.WebControls.Button
Protected WithEvents divPanel As System.Web.UI.WebControls.Panel
Protected WithEvents hdRowCount As System.Web.UI.HtmlControls.HtmlInputHidden
Protected WithEvents hdCurrentIndex As System.Web.UI.HtmlControls.HtmlInputHidden
'メモ : 次のプレースホルダ宣言は Web フォーム デザイナで必要です。
'削除および移動しないでください。
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
' CODEGEN: このメソッド呼び出しは Web フォーム デザイナで必要です。
' コード エディタを使って変更しないでください。
InitializeComponent()
AddHandler Me.Load, AddressOf Page_Load
End Sub
#End Region
Public Property Target() As DataGrid
Get
Return _dg
End Get
Set(ByVal Value As DataGrid)
_dg = Value
End Set
End Property
Public Property AutoHidden() As Boolean
Get
Return _autohidden
End Get
Set(ByVal Value As Boolean)
_autohidden = Value
End Set
End Property
Public Property PageSize() As Integer
Get
Return _pagesize
End Get
Set(ByVal Value As Integer)
_pagesize = Value
End Set
End Property
Public Property ItemCount() As Integer
Get
Return _itemcount
End Get
Set(ByVal Value As Integer)
_itemcount = Value
End Set
End Property
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' ページを初期化するユーザー コードをここに挿入します。
End Sub
Public Sub SetTarget(ByVal adg As DataGrid, ByRef aBindData1 As BindDataDelegate)
_dg = adg
binddata1 = aBindData1
AddHandler btnNavFirst.Click, AddressOf NavigationButtonClick
AddHandler btnNavPrevious.Click, AddressOf NavigationButtonClick
AddHandler btnNavNext.Click, AddressOf NavigationButtonClick
AddHandler btnNavLast.Click, AddressOf NavigationButtonClick
AddHandler btnNavGo.Click, AddressOf NavigationButtonClick
AddHandler _dg.DataBinding, AddressOf zxDataBinding
binddata1()
End Sub
Public Sub SetStyle(ByVal aPageSize As Integer, ByVal aAutoHidden As Boolean, ByVal aDispStyle As Integer)
_pagesize = aPageSize
_autohidden = aAutoHidden
_dispStyle = aDispStyle
divPanel.Visible = Not aAutoHidden
End Sub
Public Sub SetStyle(ByVal aPageSize As Integer, ByVal aAutoHidden As Boolean)
SetStyle(aPageSize, aAutoHidden, 1)
End Sub
Public Sub SetStyle(ByVal aPageSize As Integer)
SetStyle(aPageSize, True)
End Sub
Public Sub NavigationButtonClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim direction As String
direction = sender.CommandName
Select Case (direction.ToUpper())
Case ("FIRST")
_dg.CurrentPageIndex = 0
Case ("PREVIOUS")
_dg.CurrentPageIndex = Math.Max(_dg.CurrentPageIndex - 1, 0)
Case ("NEXT")
_dg.CurrentPageIndex = Math.Min(_dg.CurrentPageIndex + 1, _dg.PageCount - 1)
Case ("LAST")
_dg.CurrentPageIndex = Math.Max(_dg.PageCount - 1, 0)
Case ("GO")
Try
_dg.CurrentPageIndex = Math.Min(_dg.PageCount - 1, CInt(tbPage.Text) - 1)
tbPage.Text = ""
Catch
tbPage.Text = ""
End Try
End Select
binddata1()
End Sub
Public Sub zxDataBinding(ByVal sender As Object, ByVal e As System.EventArgs)
Dim newCount As Integer = 0
Dim PageCount As Integer = 0
If (_dg.DataSource Is "null") Then
SetButtonState(0)
Exit Sub
End If
If (_dg.DataSource.GetType().ToString().ToLower() = "system.data.datatable") Then
newCount = _dg.DataSource.Rows.Count
ElseIf (_dg.DataSource.GetType().ToString().ToLower() = "system.data.dataview") Then
newCount = _dg.DataSource.Count
ElseIf (_dg.DataSource.GetType().ToString().ToLower() = "system.data.dataset") Then
newCount = _dg.DataSource.Tables(0).Rows.Count
End If
If (newCount > 0) Then
PageCount = CInt((newCount - 1) / _pagesize)
If (_dg.CurrentPageIndex > PageCount - 1) Then
_dg.CurrentPageIndex = PageCount - 1
End If
Else
PageCount = 0
_dg.CurrentPageIndex = 0
End If
Select Case (_dispStyle)
Case 1
LabelMsg.Text = "共" + PageCount.ToString() + "頁 第" + (_dg.CurrentPageIndex + 1).ToString() + "頁"
LabelMsg.Text += " 總記?數:" + newCount.ToString() + ""
Case 2
LabelMsg.Text = (_dg.CurrentPageIndex + 1).ToString() + "/" + PageCount.ToString() + "頁"
LabelMsg.Text += " 總數:" + newCount.ToString()
End Select
If (_autohidden) Then
divPanel.Visible = ((newCount - 1) / _pagesize > 0)
Else
divPanel.Visible = True
End If
SetButtonState(PageCount)
End Sub
Public Sub SetButtonState(ByVal _PageCount As Integer)
btnNavFirst.Enabled = (_dg.CurrentPageIndex > 0)
btnNavPrevious.Enabled = (_dg.CurrentPageIndex > 0)
btnNavNext.Enabled = (_dg.CurrentPageIndex < _PageCount - 1)
btnNavLast.Enabled = (_dg.CurrentPageIndex < _PageCount - 1)
End Sub
End Class
相关文章:

F5第一个10000台
F5中国第一个累积销售10000台,花了整整9年时间。下一个累积销售10000台需要多少时间,5年,3年,甚至更短的时间?让我们拭目以待。转载于:https://blog.51cto.com/f5555/1126095

java内存溢出的情况解决方法
内存溢出虽然很棘手,但也有相应的解决办法,可以按照从易到难,一步步的解决。 第一步,就是修改JVM启动参数,直接增加内存。这一点看上去似乎很简单,但很容易被忽略。JVM默认可以使用的内存为64Mÿ…
DataGrid基于Access的快速分页法
DataGrid基于Access的快速分页法撰文/ 黎波DataGrid是一个功能非常强大的ASP.NET Web服务器端控件,它除了能够方便地按各种方式格式化显示表格中的数据,还可以对表格中的数据进行动态的排序、编辑和分页。使Web开发人员从繁琐的代码中解放。实现DataGrid…

urlrewrite使用小结
urlrewrite顾名思义,就是对URL进行重写,用户得到的全部都是经过处理后的URL地址,这样做我觉得好处有三:一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话…
性能超越图神经网络,将标签传递和简单模型结合实现SOTA
译者 | 刘畅出品 | AI科技大本营头图 | CSDN付费下载自视觉中国图神经网络(GNNs)是图学习中一种主流的技术。然而,对于GNN为什么在实际使用中很成功以及它们是否是优异性能所必需的技术,了解相对较少。本文展示了许多标准的传导节…

模仿VIMD的模式的简化代码示例
按numpad0来切换模式,按t显示不同的结果; Numpad0:: tfmode:!tfmode aaa:(tfmode1?"AAAA":"BBBB") SplashImage Off SplashImage, "",X500 Y500 W200 B fs10 CT00FFFF CW000000,%aaa%, , 切换模式提示 WinSet, Tr…

DataGrid连接Access的快速分页法(1)——需求与现状
作者:黎波一、需求分析 DataGrid是一个功能强大的ASP.NET Web服务器端控件,它除了能够按各种方式格式化显示数据,还可以对数据进行动态的排序、编辑和分页。大大减轻了广大Web程序员的工作量。实现DataGrid的分页功能一直是很多入门者感到棘手…
CSDN公众号新功能上线,居然还能搜出小姐姐???
为了给各位打工人更好的搜索体验CSDN总是在学习新技能这次CSDN公众号又给大家带来了一项全新的搜索技能在CSDN旗下的公众号内回复消息就能自动回复想搜索的内容啦小编来给大家演示一下,在公众号内输入“mysql安装教程”,就能得到CSDN全站内关于mysql安装…
p2v、v2v 转换-windows篇
问题:如何把 xenserver的虚拟机转成Esxi的虚拟机 如何把物理机转成Esxi的虚拟机答案:↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓首先介绍一下实验环境。一台xenserver主机上两台虚拟机 win03和win08 转到Esxi5.0的一台主机上。Esxi5.0在某个…
WebViewJavascriptBridge原理解析
基本说明 我们的项目是一个OC与javascript重度交互的app,OC与javascript交互的那部分是在WebViewJavascriptBridge的github地址的基础上修改的,WebViewJavascriptBridge应该是当前最流行最成功的OC与Web交互实现了。最近看了一下他的实现原理,…
DataGrid连接Access的快速分页法(2)——SQL语句的选用(升序与降序)
作者:黎波 一、相关概念 在 ACCESS 数据库中,一个表的主键(PRIMARY KEY,又称主索引)上必然建立了唯一索引(UNIQUE INDEX),因此主键字段的值是不会重复的。并且索引页依据索引列的值…
从谷歌AutoML到百度EasyDL,AI大生产时代,调参师不再是刚需
出品 | AI科技大本营头图 | 付费下载于视觉中国2018 年,Google Cloud 宣布将 AutoML 作为机器学习产品的一部分。至此,AutoML 开始进入大众的视野。 实际上,2013 年AutoWEKA的发布可以算作AutoML的开端;2014 年,ICML开…

Python 语法小知识
为什么80%的码农都做不了架构师?>>> 序列解包 将含有多个值的序列解开,然后把值存放到变量中,当函数或者方法返回元组时这个特性很有用,可以把返回的序列值直接赋值给变量,在序列解包时等号两边的元素个数…

CSS布局之-水平垂直居中
对一个元素水平垂直居中,在我们的工作中是会经常遇到的,也是CSS布局中很重要的一部分,本文就来讲讲CSS水平垂直居中的一些方法。另外,文中的css都是用less书写的,如果看不懂less,可以把我给的demo链接打开&…

DataGrid连接Access的快速分页法——动态生成SQL语句
作者:黎波using System;using System.Text;namespace Paging{/// <summary>/// FastPaging 的摘要说明。/// </summary>public class FastPaging {private FastPaging() {}/// <summary>/// 获取根据指定字段排序并分页查询的 SELECT 语句。/// &…
一文读懂机器学习“数据中毒”
作者 | Ben Dickson翻译 | 火火酱~出品 | AI科技大本营头图 | 付费下载于视觉中国在人类的眼中,下面的三张图片分别展示了三样不同的东西:一只鸟、一只狗和一匹马。但对于机器学习算法来说,这三者或许表示同样的东西:一个有黑边的白色小方框。…

chartee
2019独角兽企业重金招聘Python工程师标准>>> 一个绘制图表的类库,支持绘制股票的K线图,还可以绘制曲线、柱状图等等。 Code4App编译测试,测试环境:Xcode 4.3, iOS 5.0。 转载:http://www.adobex.com/ios/source/detail…

C语言存储类关键字
1、static这个关键字有三种用法:(1)第一种是用来修饰局部变量,使之成为静态局部变量;静态局部变量存储在数据段/bss段中,作用域是代码块作用域,生命周期是程序生命周期,链接属性是无…

显示DataGrid序号的一个适用的方法
作者Blog:http://blog.csdn.net/wangj2001/如果数据量小的话没有问题,一旦数据量大,显示特别慢,还有个缺点就是拖动行高时行号不随行高的变化而变动,出现是几个序号在一个单元格中显示。我自己对他们的算法进行总结&am…

Integer的自动缓存
2019独角兽企业重金招聘Python工程师标准>>> Interger装箱有个自动缓存的概念 Integer a 100;Integer b 100;Integer c 200;Integer d 200;System.out.println(a b); //trueSystem.out.println(c d); //false Integer是对象,比较的是对象在内存中…
崩溃!双十一第 4 天,某互联网公司黄了?
01打折这么狠是不是要黄了??今年的双十一,开始地比以往早一些!不知道各位程序员小哥哥们的战绩如何,是不是已经被一轮又一轮的定金、尾款,折腾到数学细胞耗尽?付款了也不清楚自己有没有真正的「…
FreeBSD设备驱动管理介绍(BSP: Ti AM335x)
这段时间一直在忙FreeBSD驱动移植的项目,因此对FreeBSD做了一定的了解,鉴于网上对于FreeBSD的设备驱动资料较少,在这里给出本人对于FreeBSD驱动管理的理解心得(主要是USB驱动管理),希望能对开源开发者有所帮…

视障人士体验自动驾驶:携导盲犬登车,未来有望“自己开”
6月27日,滴滴出行首次面向公众开放自动驾驶服务。用户可通过滴滴APP线上报名,审核通过后,将能在上海自动驾驶测试路段,免费呼叫自动驾驶车辆进行试乘体验。现阶段,滴滴自动驾驶载人测试范围仅限于在上海开放测试道路上…

Listview获取选中行的值
一般情况请注意别先删除了选中行,又去使用。那就会导致找不到选中行。。。。。哥犯了这个错误。。。找了很长时间问题if (this.lstwlview.SelectedIndices.Count > 0) { if (MessageBox.Show("确认删除该条码?",…

asp.net中DataGrid性能测试
作者Blog:http://blog.csdn.net/yzdy/ 测试环境:数据库服务器:2.4G P4 CPU,2G 内存,Windows Advanced Server 2000,SQL Server 2000Web服务器:2.4G P4 CPU,1G 内存,Windows Advanced…

javassist学习笔记
2019独角兽企业重金招聘Python工程师标准>>> 介绍:www.javassist.org/ javassist、ASM 对比 1、javassist是基于源码级别的API比基于字节码的ASM简单。 2、基于javassist开发,不需要了解字节码的一些知识,而且其封装的一些工具类可…
金融领域首个开源中文BERT预训练模型,熵简科技推出FinBERT 1.0
出品 | AI科技大本营头图 | CSDN付费下载于东方IC为了促进自然语言处理技术在金融科技领域的应用和发展,熵简科技 AI Lab 近期开源了基于 BERT 架构的金融领域预训练语言模型 FinBERT 1.0。据悉,这是国内首个在金融领域大规模语料上训练的开源中文BERT预…

raspberry pi下使用mp3blaster播放mp3音乐
首先:sudo apt-get install mp3blaster mp3blaster wode.mp3会报错 但是加padsp mp3blaster wode.mp3 就可以正常播放了

把Excel文件中的数据读入到DataGrid中
作者Blog:http://blog.csdn.net/net_lover/使用Excel文件做为DataGrid的数据源是非常简单的,一旦数据被装载进来,就可以把数据再保存进SQL Server或XML中。我们只需要简单地使用OLE DB Provider 来访问Excel文件,然后返回DataSet即…