说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

请教一个Datagrid分页的问题,具体代码附后。

编辑:说三道四文库 发布时间:2018-05-25 11:35
HTML文档下载 WORD文档下载 PDF文档下载
我在VS2003中建了一个Webapplication, 加入了sqlconnection1,sqlcommand1,sqldataadapter13个控件,sqlconnection, command.text均无问题,结果显示的第一页也没问题,就是不能分页,加入vitureitem后,显示了N多页码,但点击页码无反应,搞了一上午,查了N多资料,还是没搞懂。请各位帮忙了。
具体代码如下:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码

        If Not IsPostBack Then
            BindGrid()
        End If


    End Sub

    Public Sub BindGrid()

        SqlConnection1.Open()
        SqlCommand1.Connection = SqlConnection1
        DataGrid1.DataSource = SqlCommand1.ExecuteReader
      '    DataGrid1.VirtualItemCount = 50  
        
        If Not Page.IsPostBack Then

        DataGrid1.DataBind()

        End if

        SqlConnection1.Close()

    End Sub

    Private Sub DataGrid1_PageIndexChanged(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs)
        DataGrid1.CurrentPageIndex = e.NewPageIndex
        BindGrid()
    End Sub
BindGrid()方法不要if块
因为每次DataGrid1_PageIndexChanged都是IsPostBack,当然不会执行DataGrid1.DataBind()了
Tom,
我已去掉了if, 该为:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码

            BindGrid()
End Sub

但还是不行阿。
If Not Page.IsPostBack Then
        DataGrid1.DataBind()
        End if
        SqlConnection1.Close()
这个不要就可以,原因见楼上!
前台代码那?别去用什么控件,自己写直观方便
还是不可以,要不我把原文件打个包,您给看看??
原因就是你在BindData时判断了!IsPostBack.最好了解下什么时候会触发IsPostBack.我也有过你的困惑.多做做实例就明白了.
'If Not Page.IsPostBack Then

DataGrid1.DataBind()

'End if

多余的判断
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘