首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
tellmenow (22)
cutemouse (22)
softj (78)
iiprogram (69)
qdzx2008 (50)
goodboy1881 (14)
wangchinaking (58)
fancyhf (1)
harrymeng (41)
yjz0065 (113)
CSDN - 文档中心 - .NET 阅读:9773   评论: 10    参与评论
标题   datagrid分页《非控件版》     选择自 rickjelly2004 的 Blog
关键字   fenye2
出处  

首先对我之前的发表的那篇补充一下:当你在你的建立的工程中要用到我做的那个用户控件的话:声明 Protected DataGridPage1 As DataGridPage,前是你拖进来的控件名,后是你定义用户控件。然后在你代码中要用你的控件就写上:

DataGridPage1.SetTarget(MyDataGrid, New BindDataDelegate(AddressOf binddata))
DataGridPage1.SetStyle(10, False)

下划线部分是你自己写的一个绑定之类的涵数。SUB,FUNCTION 等。

以下是我不做成控件时的代码:

HTML:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="fenye.aspx.vb" Inherits="datagridtitle.fenye"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <title>fenye</title>
  <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
  <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
  <meta name="vs_defaultClientScript" content="JavaScript">
  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <FONT face="MS UI Gothic">
    <asp:DataGrid id="MyDataGrid" style="Z-INDEX: 101; LEFT: 0px; POSITION: absolute; TOP: 112px"
     runat="server" Width="744px" Height="224px" AllowPaging="True">
     <PagerStyle Visible="False"></PagerStyle>
    </asp:DataGrid>
    <asp:LinkButton id="LinkButton1" style="Z-INDEX: 102; LEFT: 8px; POSITION: absolute; TOP: 96px"
     runat="server" Width="48px" Height="8px">第一頁</asp:LinkButton>
    <asp:LinkButton id="LinkButton2" style="Z-INDEX: 103; LEFT: 64px; POSITION: absolute; TOP: 96px"
     runat="server" Width="56px">前一頁</asp:LinkButton>
    <asp:LinkButton id="LinkButton3" style="Z-INDEX: 104; LEFT: 120px; POSITION: absolute; TOP: 96px"
     runat="server" Width="48px">後一頁</asp:LinkButton>
    <asp:LinkButton id="LinkButton4" style="Z-INDEX: 105; LEFT: 176px; POSITION: absolute; TOP: 96px"
     runat="server" Width="80px">最後一頁</asp:LinkButton>
    <asp:Label id="Label1" style="Z-INDEX: 106; LEFT: 552px; POSITION: absolute; TOP: 80px" runat="server"
     Width="56px">跳轉到:</asp:Label>
    <asp:TextBox id="txtGoPage" style="Z-INDEX: 107; LEFT: 624px; POSITION: absolute; TOP: 80px"
     runat="server" Width="48px" Height="24px"></asp:TextBox>
    <asp:Button id="btnGo" style="Z-INDEX: 108; LEFT: 680px; POSITION: absolute; TOP: 80px" runat="server"
     Height="24px" Width="56px" Text="Button"></asp:Button>
    <asp:Label id="lblCurrentIndex" style="Z-INDEX: 109; LEFT: 296px; POSITION: absolute; TOP: 88px"
     runat="server" Height="24px" Width="120px">Label</asp:Label>
    <asp:Label id="lblPageCount" style="Z-INDEX: 110; LEFT: 424px; POSITION: absolute; TOP: 88px"
     runat="server" Width="112px">Label</asp:Label></FONT>
  </form>
 </body>
</HTML>

WEB代码:

 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' ページを初期化するユーザー コードをここに挿入します。
        If Not IsPostBack Then

            ViewState("strSort") = "orderid"

            MyDataGrid.DataSource = GetDv(ViewState("strSort").ToString())

            MyDataGrid.DataBind()
            ShowStatsPage()
            'Call orderbind()
        End If
    End Sub
    Private Function GetDv(ByVal strSort As String) As DataView

 

        Dim dv As DataView

        Dim CN As New SqlConnection

        Try

 

            CN.ConnectionString = "data source=yangchangquan;initial catalog=Northwind;persist security info=False;user id=sa;Password=pass;"

            CN.Open()

 

            Dim adp As SqlDataAdapter = New SqlDataAdapter("select * from orders", CN)

            Dim ds As New DataSet

            adp.Fill(ds)


           
            dv = ds.Tables(0).DefaultView

        Catch ex As Exception

#If DEBUG Then

            Session("Error") = ex.ToString()

            Response.Redirect("../error.aspx")

#End If

        Finally

            '???接

            CN.Close()

        End Try

        '排序

        dv.Sort = strSort

        Return dv

    End Function

 


    Private Sub MyDataGrid_SortCommand(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs)
        MyDataGrid.CurrentPageIndex = 0

        '得到排序的列

        ViewState("strSort") = e.SortExpression.ToString()

        MyDataGrid.DataSource = GetDv(ViewState("strSort").ToString())

        MyDataGrid.DataBind()

        ShowStatsPage()
    End Sub

 


    Private Sub btnGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGo.Click
        Dim pageI As Integer
        If (txtGoPage.Text <> "") Then
            pageI = CInt(Trim(txtGoPage.Text)) - 1
            If (pageI >= 0 And pageI < (MyDataGrid.PageCount)) Then
                MyDataGrid.CurrentPageIndex = pageI
            End If
        End If
        ViewState("strSort") = "orderid"

        MyDataGrid.DataSource = GetDv(ViewState("strSort").ToString())

        MyDataGrid.DataBind()
        ShowStatsPage()
    End Sub

Private Sub ShowStatsPage()
        lblCurrentIndex.Text = "[<font color='blue'>當前頁為:" & (MyDataGrid.CurrentPageIndex + 1) & "頁</font>]"
        lblPageCount.Text = "[<font color='blue'>共:" & MyDataGrid.PageCount & "頁</font>]"

    End Sub

 Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
        MyDataGrid.CurrentPageIndex = 0
        ViewState("strSort") = "orderid"

        MyDataGrid.DataSource = GetDv(ViewState("strSort").ToString())

        MyDataGrid.DataBind()
        ShowStatsPage()
    End Sub

    Private Sub LinkButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton4.Click
        MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1)
        ViewState("strSort") = "orderid"

        MyDataGrid.DataSource = GetDv(ViewState("strSort").ToString())

        MyDataGrid.DataBind()
        ShowStatsPage()
    End Sub

    Private Sub LinkButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton2.Click
        If (MyDataGrid.CurrentPageIndex > 0) Then
            MyDataGrid.CurrentPageIndex = MyDataGrid.CurrentPageIndex - 1
            ViewState("strSort") = "orderid"

            MyDataGrid.DataSource = GetDv(ViewState("strSort").ToString())

            MyDataGrid.DataBind()
            ShowStatsPage()
        End If
    End Sub

    Private Sub LinkButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton3.Click
        If (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1)) Then
            MyDataGrid.CurrentPageIndex = MyDataGrid.CurrentPageIndex + 1
            ViewState("strSort") = "orderid"

            MyDataGrid.DataSource = GetDv(ViewState("strSort").ToString())

            MyDataGrid.DataBind()
            ShowStatsPage()
        End If
    End Sub

完成;


相关文章
对该文的评论
CSDN 网友 ( 2005-09-07)
剽窃文章不算偷。

不过日货还是要抵制的。
listhome ( 2004-04-01)
这样也行!!!!服了
rickjelly2004 ( 2004-03-30)
对不起,我不是不想删除日文,你要知道我的机器是日文系统,纯日文系统。
所以写的东西都是有日文的呀,各位对不起!
本人现在在上海…………软件公司上班。
zergtant ( 2004-03-29)
以下是我不做成控件时的代码:
WEB代码:

 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' ページを初期化するユーザー コードをここに挿入します。

哥们强呀,还会日文呢呀,以后抄别人东西的时候记得吧我们看不懂的日文删掉
bingeng ( 2004-03-29)
SetTarget必须放在page_Load中,在有查询条件的页面中就不能用了.
--------------
假如在一个页面中存在搜索部分
要在查询条件生成之后才调用数据绑定部分

查询事件触发生成查询条件的函数--->通过SetTarget调用数据绑定控件BindData,分页按钮就不起作用了.

BindData绑定到DataGrid的操作都是在分页控件中调用的,在执行查询时,通过控制可以调用.SetTarget操作,这个过程是没有问题的,但是在翻页时,翻页按钮就不能触发SetTarget操作了,故翻页按钮"事件丢失".