1.在DataGrid_PageIndex事件里加上DataBind
2.你动态加载的控件是在什么时候加载的,是加载在什么地方?
如果是在页面上加载应注意必须在Page_Load时加载
如果是加载在别的控件上必须是在别的控件Create时加载

解决方案 »

  1.   

    我给你我的代码:(可以不要那么完整的,但完整了总没错) Private Sub ShowQueryData() '''这个是用来读数据和绑定的过程
            Dim Conn As New SqlClient.SqlConnection(Application.Item("ConnString"))
            Dim Cmd As New SqlClient.SqlCommand()
            Dim myAdapter As New SqlClient.SqlDataAdapter()
            Dim myDataSet As New DataSet()
            Conn.Open()
            Cmd.CommandType = CommandType.StoredProcedure
            Cmd.CommandText = "dbo.procSearchNews"
            Cmd.Parameters.Add("@strSqlCondiction", strSqlCondict)
            Cmd.Parameters.Add("@strDepartID", Session.Item("strUserDepart"))
            If Session.Item("strUserRight") >= 3 Then
                Cmd.Parameters.Add("@intRight", "3")
            End If
            Cmd.Connection = Conn
            myAdapter.SelectCommand = Cmd
            myAdapter.Fill(myDataSet, "viewDisplayNews")
            Dim tempcolumn As New DataColumn("MediaType", GetType(String))
            Dim tempColumn1 As New DataColumn("newsGoWhere", GetType(String))
            Dim tempColumnHref As New DataColumn("NewsHref", GetType(String))
            Dim tempIsValid As New DataColumn("isValid", GetType(String))
            myDataSet.Tables("viewDisplaynews").Columns.Add(tempcolumn)
            myDataSet.Tables("viewDisplaynews").Columns.Add(tempColumn1)
            myDataSet.Tables("viewDisplayNews").Columns.Add(tempColumnHref)
            myDataSet.Tables("viewDisplayNews").Columns.Add(tempIsValid)
            Dim tempRow As DataRow
            Dim i As Short
            Dim j As Short
            Dim k As Integer
            Dim l As Boolean
            For Each tempRow In myDataSet.Tables("viewDisplayNews").Rows '在所有行中写入数据
                i = tempRow("N_status")
                j = tempRow("N_where")
                k = tempRow("N_id")
                l = tempRow("N_Valid")
                If l = True Then
                    tempRow("isValid") = "是"
                Else
                    tempRow("isValid") = "否"            End If
                If i = 0 Then
                    tempRow("MediaType") = "文本"
                    tempRow("NewsHref") = "OneTextNews.aspx?NewsIDPara=" + k.ToString
                ElseIf i = 1 Then
                    tempRow("MediaType") = "图片"
                    tempRow("NewsHref") = "OnePicNews.aspx?NewsIDPara=" + k.ToString
                ElseIf i = 2 Then
                    tempRow("MediaType") = "音频"
                    tempRow("NewsHref") = "OneVideoNews.aspx?NewsIDPara=" + k.ToString
                ElseIf i = 3 Then
                    tempRow("MediaType") = "视频"
                    tempRow("NewsHref") = "OneVideoNews.aspx?NewsIDPara=" + k.ToString
                End If
                If j = 0 Then
                    tempRow("newsGoWhere") = "校内"
                ElseIf j = 1 Then
                    tempRow("newsGoWhere") = "校外"
                Else
                    tempRow("newsGoWhere") = "校内外"
                End If
            Next
            gridResult.DataSource = myDataSet.Tables("viewDisplayNews").DefaultView
            gridResult.DataBind() '绑定到数据显示datagrid控件    End Sub '''数据读出和绑定结束''----------------------------以下是分页的时候的过程
    Private Sub gridResult_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles gridResult.PageIndexChanged
            gridResult.CurrentPageIndex = e.NewPageIndex
            gridResult.DataBind()
            ShowQueryData()'''调用前面的数据显示过程
       End Sub
      

  2.   

    to jsPan(三木俊子):
    我怎么没见你控件显示的过程是这样的:
    A按钮:条件1:A1控件出现
    条件2:A2控件出现
    ..........但是,当我在A1中点击按钮时,A1不出现,我知道要重新加载,我想问的是怎么加载是最好的方法,我不希望在page_load中加载,因为我用了multipage,有5到6页,且每一个中都有A1,如果在page_load中加载,不好,我希望只在一页中加载。
      

  3.   

    gridResult.CurrentPageIndex = e.NewPageIndex
            gridResult.DataBind()
            ShowQueryData()
    有问题啊!老哥。
    你的dg帮定前,没有指定ddatasource,你帮定的是什么啊??
    你要说是在 ShowQueryData()中帮定的,还可以说的过去。
    建议改为:
    添加:
     Property myDataSet () As DataSet
            Get
                Return Session("MYDS")
            End Get
            Set(ByVal Value As DataSet)
                Session("MYDS") = Value
            End Set
        End Property
    page_load:if not ispostback then
    myDataSet =new dataset()
    ShowQueryData()
    end ifShowQueryData:
    Private Sub ShowQueryData() '''这个是用来读数据和绑定的过程
            Dim Conn As New SqlClient.SqlConnection(Application.Item("ConnString"))
            Dim Cmd As New SqlClient.SqlCommand()
            Dim myAdapter As New SqlClient.SqlDataAdapter()
            Conn.Open()
            Cmd.CommandType = CommandType.StoredProcedure
            Cmd.CommandText = "dbo.procSearchNews"
            Cmd.Parameters.Add("@strSqlCondiction", strSqlCondict)
            Cmd.Parameters.Add("@strDepartID", Session.Item("strUserDepart"))
            If Session.Item("strUserRight") >= 3 Then
                Cmd.Parameters.Add("@intRight", "3")
            End If
            Cmd.Connection = Conn
            myAdapter.SelectCommand = Cmd
            myAdapter.Fill(myDataSet, "viewDisplayNews")
            Dim tempcolumn As New DataColumn("MediaType", GetType(String))
            Dim tempColumn1 As New DataColumn("newsGoWhere", GetType(String))
            Dim tempColumnHref As New DataColumn("NewsHref", GetType(String))
            Dim tempIsValid As New DataColumn("isValid", GetType(String))
            myDataSet.Tables("viewDisplaynews").Columns.Add(tempcolumn)
            myDataSet.Tables("viewDisplaynews").Columns.Add(tempColumn1)
            myDataSet.Tables("viewDisplayNews").Columns.Add(tempColumnHref)
            myDataSet.Tables("viewDisplayNews").Columns.Add(tempIsValid)
            Dim tempRow As DataRow
            Dim i As Short
            Dim j As Short
            Dim k As Integer
            Dim l As Boolean
            For Each tempRow In myDataSet.Tables("viewDisplayNews").Rows '在所有行中写入数据
                i = tempRow("N_status")
                j = tempRow("N_where")
                k = tempRow("N_id")
                l = tempRow("N_Valid")
                If l = True Then
                    tempRow("isValid") = "是"
                Else
                    tempRow("isValid") = "否"            End If
                If i = 0 Then
                    tempRow("MediaType") = "文本"
                    tempRow("NewsHref") = "OneTextNews.aspx?NewsIDPara=" + k.ToString
                ElseIf i = 1 Then
                    tempRow("MediaType") = "图片"
                    tempRow("NewsHref") = "OnePicNews.aspx?NewsIDPara=" + k.ToString
                ElseIf i = 2 Then
                    tempRow("MediaType") = "音频"
                    tempRow("NewsHref") = "OneVideoNews.aspx?NewsIDPara=" + k.ToString
                ElseIf i = 3 Then
                    tempRow("MediaType") = "视频"
                    tempRow("NewsHref") = "OneVideoNews.aspx?NewsIDPara=" + k.ToString
                End If
                If j = 0 Then
                    tempRow("newsGoWhere") = "校内"
                ElseIf j = 1 Then
                    tempRow("newsGoWhere") = "校外"
                Else
                    tempRow("newsGoWhere") = "校内外"
                End If
            Next
            gridResult.DataSource = myDataSet
            gridResult.DataBind() '绑定到数据显示datagrid控件    End Sub '''数据读出和绑定结束
      

  4.   

    Private Sub gridResult_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles gridResult.PageIndexChanged
            gridResult.CurrentPageIndex = e.NewPageIndex
            gridResult.DataSource = myDataSet
            gridResult.DataBind()
            End Sub