ASP.NET GridView分页不起作用

时间:2017-06-14 17:51:34

标签: asp.net vb.net datagridview paging

我搜索了堆栈溢出和谷歌,但我找不到适用于我的情况的答案,我尝试了很多。

我遇到了ASP.NET gridview的问题。页面首次加载时,网格附加到数据源ID,并显示带有分页的记录。

现在,如果用户过滤了数据,则会显示返回记录的第一页,但如果他们点击gridview页脚中的“第2页”页面会闪烁,但不会更改数据或页面。

此外,我注意到在应用搜索时,无论返回多少条记录,页脚都会显示10多页。

这是ASP.NET GridView头代码:

<asp:GridView ID="gvSOHeader" runat="server" 
AutoGenerateColumns="False" Width="1010px" CellPadding="4" 
ForeColor="#333333" GridLines="Horizontal" AllowSorting="True" 
AllowPaging="True" OnPageIndexChanging="gvSOHeaderOnPageIndexChanging" 
PageSize="15" DataSourceID="SqlDataSource2">

当用户在此处搜索时,是重新分配网格视图数据源的代码:

        Using conn As New SqlConnection(myConnection)
        conn.Open()
        Using sqlCmd As New SqlCommand
            sqlCmd.CommandText = strText
            sqlCmd.Connection = conn
            Using sqlDA As New SqlDataAdapter(sqlCmd)
                Using sqlDT As New DataTable
                    sqlDA.Fill(sqlDT)
                    If sqlDT.Rows.Count > 0 Then
                        gvSOHeader.DataSourceID = String.Empty
                        gvSOHeader.DataSource = Nothing
                        gvSOHeader.DataSource = sqlDT
                        gvSOHeader.DataBind()
                    End If
                End Using
            End Using
        End Using
        conn.Close()
    End Using

这样可行但只是显示返回结果的第一页。我无法访问任何其他结果页面。

这是OnPageIndexChanging事件代码:

Protected Sub gvSOHeaderOnPageIndexChanging(sender As Object, e As GridViewPageEventArgs) Handles gvSOHeader.PageIndexChanging

    gvSOHeader.PageIndex = e.NewPageIndex
    gvSOHeader.DataBind()

End Sub

我也注意到OnPgeIndexChanging事件触发了两次,但我不知道为什么。我尝试将On语句添加到OnPageIndexChanging以检查Not IsPostback,但它仍然不会显示超过搜索数据的第一页。

我很抱歉,如果这是重复但我找不到符合我情况的结果。任何帮助都会得到很大的帮助。 感谢。

0 个答案:

没有答案