频道直达 - 学院 - 下载 - 交易 - 截图 - 特效 - 字库 - 手册 - 排名-工具 - 繁體
设为首页
加入收藏
联系我们
建站搜索: 虚拟主机  域名注册   常用广告代码      用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发 -> Asp.Net -> 文章内容
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 通过google 赶快来赚..
· [图文] 头像-qq头像(..
· 要10G免费网络硬盘的..
· 注册码大全三
· 注册码大全十
· [图文] 梦幻背景图片..
· [图文] 卡通动物图片..
相关文章
· 在ASP中用集合成批操..
· 绘制的芭比娃娃 [1]
· 中搜遭中凯索赔120万元 ..
· 马与云的结合 [3]
· JSP内幕
· BackPack - 体验可读写的..
· 利 用 ISAPI 实 现 向 数..
· 各种存储过程使用指南
· 确认是否关闭浏览器或转..
· 用文本作数据处理
datagrid分页问题(前后跳页)《控件版》
作者:未知  来源:转载  发布时间:2005-7-20 10:21:34  发布人:acx

减小字体 增大字体

把它定义在用户控件中的。在。ASCX中写的。

在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>


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

[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
免责申明:中国建站之家(www.jz123.cn)上的所有提供下载的软件和资源
均来源于网络,为软件或程序作者提供和网友推荐收集整理而来,仅供学习
和研究使用。如有侵犯你的版权,请立即联系我们,本站将在3个工作日内删除。
粤ICP备05092265号