这是其中一段程序,帮帮忙看看是哪出的问题
'定义一个方法,外部调用时点击DataGrid翻页时出错
    Public Sub MainDetailDataBind(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim myDS As New DataSet()
        myDS = CreateDataSource(ConStr, MainSqlStr)
        MainDataGrid.DataSource = myDS.Tables("table").DefaultView
        BindDataGrid(MainDataGrid, MainColumnName, MainTitleName, True) '绑定主表
        MainDataGrid.Visible = True
    End Sub
'使用Page_Load正常 
   Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
        Dim myDS As New DataSet()
        myDS = CreateDataSource(ConStr, MainSqlStr)
        If IsNothing(myDS) Then Exit Sub
        MainDataGrid.DataSource = myDS.Tables("table").DefaultView
        BindDataGrid(MainDataGrid, MainColumnName, MainTitleName, True) '绑定主表
        MainDataGrid.Visible = False
    End Sub    '根据传过来的SQL创建数据源
    Private Function CreateDataSource(ByVal strConnect As String, ByVal strSql As String) As DataSet
        Dim objDataSet As New DataSet()
        Dim objConnect As New OleDbConnection(strConnect)
        Dim objDataAdapter As New OleDbDataAdapter()
        Dim objCommand As New OleDbCommand()
        objDataAdapter.SelectCommand = objCommand
        objCommand.Connection = objConnect
        objCommand.CommandType = CommandType.Text
        objCommand.CommandText = strSql
        objDataAdapter.Fill(objDataSet, "Table")
        Return objDataSet
    End Function    '数据绑定
    Private Sub BindDataGrid(ByVal objDataGrid As DataGrid, ByVal ColumnName As String, ByVal TitleName As String, ByVal is_MainTable As Boolean)
        Dim _ColName() As String = Split(ColumnName, ",") '定义数组保存各列名
        Dim _ColTitle() As String = Split(TitleName, ",") '定义数组保存各列标题头
        Dim i As Integer
        Dim j As Integer = _ColName.Length
        '循环取出各字段值和标题头
        For i = 0 To j - 1
            Dim dyn_col As BoundColumn = New BoundColumn()
            dyn_col.DataField = _ColName(i)
            dyn_col.HeaderText = _ColTitle(i)
            dyn_col.SortExpression = _ColName(i)
            dyn_col.ItemStyle.Wrap = False
            objDataGrid.Columns.AddAt(i, dyn_col)
        Next
        If is_MainTable Then
            '定义一个查询按钮从表情况
            Dim col_detail As New ButtonColumn()
            col_detail.Text = "选择"
            col_detail.CommandName = "select"
            col_detail.ItemStyle.Wrap = False
            objDataGrid.Columns.AddAt(j, col_detail)
        End If
        objDataGrid.DataBind()
        '初始化显示的页数
        tb_page.Text = MainDataGrid.CurrentPageIndex + 1
        Label1.Text = MainDataGrid.CurrentPageIndex * MainDataGrid.PageSize + 1
        Label2.Text = MainDataGrid.CurrentPageIndex * MainDataGrid.PageSize + MainDataGrid.Items.Count
    End Sub
    '主表自定义翻页
    Public Sub lb_page_Click(ByVal sender As Object, ByVal e As EventArgs)
        Select Case CType(sender, LinkButton).CommandArgument
            Case "lb_first"
                MainDataGrid.CurrentPageIndex = 0
            Case "lb_pre"
                If MainDataGrid.CurrentPageIndex > 0 Then
                    MainDataGrid.CurrentPageIndex = MainDataGrid.CurrentPageIndex - 1
                End If
            Case "lb_next"
                If MainDataGrid.CurrentPageIndex < (MainDataGrid.PageCount - 1) Then
                    MainDataGrid.CurrentPageIndex = MainDataGrid.CurrentPageIndex + 1
                End If
            Case "lb_last"
                MainDataGrid.CurrentPageIndex = MainDataGrid.PageCount - 1
        End Select
        tb_page.Text = MainDataGrid.CurrentPageIndex + 1
        MainDataGrid.DataBind()
        UpdateDetailGrid()
    End Sub

解决方案 »

  1.   

    方法贴错了,不带参数的
     Public Sub MainDetailDataBind()
            Dim myDS As New DataSet()
            myDS = CreateDataSource(ConStr, MainSqlStr)
            MainDataGrid.DataSource = myDS.Tables("table").DefaultView
            BindDataGrid(MainDataGrid, MainColumnName, MainTitleName, True) '绑定主表
            MainDataGrid.Visible = True
        End Sub
      

  2.   

    你在Page_Load中设置了:MainDataGrid.Visible = False
    但是在lb_page_Click函数中又没改过来,当然就看不见了。
      

  3.   

    lb_page_Click中,
    MainDataGrid.DataBind()前,应该对MainDataGrid.DataSource赋值。
      

  4.   

    还是不行,DataSource中已经有值了,而且翻页的数据也是正常的。但就是不能显示DataGrid,但如果再次调用方法可以显示的。
    ??????
      

  5.   

    还是不行,DataSource中已经有值了,而且翻页的数据也是正常的。但就是不能显示DataGrid,但如果再次调用方法可以显示的。
    ??????
      

  6.   

    还是不行,DataSource中已经有值了,而且翻页的数据也是正常的。但就是不能显示DataGrid,但如果再次调用方法可以显示的。
    ??????
      

  7.   

    还是不行,DataSource中已经有值了,而且翻页的数据也是正常的。但就是不能显示DataGrid,但如果再次调用方法可以显示的。
    ??????