【问题标题】:Pagination not working in asp:DataGrid分页在 asp:DataGrid 中不起作用
【发布时间】:2011-02-04 16:36:18
【问题描述】:

问题:

当我尝试转到第 2 页或数据网格的任何其他后续页面时,它只会刷新页面。

标记:

<!--Main DataGrid-->
<asp:DataGrid
        ID="dgTasks"
        runat="server"
        PageSize="40"
        AllowPaging="true"
        AutoGenerateColumns="false"
        ForeColor="#333333"
        GridLines="Both"
        Font-Size="Small"
        AllowSorting="true"
        OnItemDataBound="Item_DataBound" >
        <HeaderStyle
            BackColor="#990000"
            Font-Bold="True"
            ForeColor="White"
            HorizontalAlign="Center"
            Font-Size="Small"/> 
        <Columns>
            ...
        </Columns>
        <SelectedItemStyle
            BackColor="#FFCC66"
            Font-Bold="True"
            ForeColor="Navy" />
        <PagerStyle
            BackColor="#CCCCCC"
            ForeColor="#333333"
            HorizontalAlign="Right"
            Mode="NumericPages" /> 
        <AlternatingItemStyle
            BackColor="White" /> 
        <ItemStyle
            BackColor="#FFFBD6"
            ForeColor="#333333" /> 
        <FooterStyle
            BackColor="#990000"
            Font-Bold="True"
            ForeColor="White" />
</asp:DataGrid>

代码背后:

Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If IsPostBack Then
        'DoNothing'
    Else
        BindData("")
    End If
End Sub

Private Sub BindData(ByVal strDisplayCompleted As String, ByVal strSort As String)
    Dim taskDataSet As TaskDataSet = New TaskDataSet()
    Dim dt As DataTable = taskDataSet.GetData("N").Tables(0)
    For Each dr As DataRow In dt.Rows
        If dr.Item(2).ToString().StartsWith("Vacancy") Then
            dr.Delete()
        End If
    Next

    If strSort.Length > 0 Then
        dt.DefaultView.Sort = strSort
    End If
    dgTasks.DataSource = dt.DefaultView
    dgTasks.DataBind()
End Sub

Private Sub BindData(ByVal strSort As String)
    BindData("N", strSort)
End Sub

现在,我什至不确定为什么分页不起作用。我有AllowPaging 等于true,我没有重新绑定PostBack 上的数据,所以我很困惑。任何帮助都会很棒。谢谢。

【问题讨论】:

    标签: asp.net vb.net datagrid pagination


    【解决方案1】:

    您似乎没有将数据网格绑定到像 ObjectDataSource、EntityDataSource 这样的控件,它会自动为您处理分页。

    您需要从 gridview 处理 Paging 事件,然后自己重​​置页面索引

    gridview.PageIndex = e.newPageIndex

    (我不在使用 IDE 的机器上,所以现在无法确认这在语法上是否正确)

    【讨论】:

    • 谢谢,我试试看。
    猜你喜欢
    • 2011-03-04
    • 2018-03-05
    • 2012-04-18
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多