【问题标题】:.NET Gridview Paging shows different content on following pages.NET Gridview Paging 在以下页面上显示不同的内容
【发布时间】:2011-05-11 10:02:40
【问题描述】:

我在启用了分页的页面中有一个 GridView(未启用排序,未使用)。分配了 OnRowDataBound 和 OnPageIndexChanged 事件。

<asp:GridView ShowHeader="False" ID="GV1" runat="server" AutoGenerateColumns="False" OnRowDataBound="gridView_RowDataBound" DataSourceID="SqlDataSource1" GridLines="None" CellPadding="0" PageSize="25" AllowPaging="True" OnPageIndexChanging="GV1_PageIndexChanging">

数据源在 gridview 下方分配为:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:my_connectionstring %>"></asp:SqlDataSource>

OnRowDataBound 用于以格式化的方式显示内容。我认为这不会导致任何问题:

 Protected Sub gridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs).....

PageIndexChanging 定义如下:

    Protected Sub GV1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs)
    GV1.PageIndex = e.NewPageIndex
    GV1.DataBind()
End Sub

在 Page_Load 部分中,这是我填充数据源的方式。它来自在字符串 tempSqlStr 中构造的自定义查询:

SqlDataSource1.SelectCommand = tempSqlStr
If Not Page.IsPostBack Then
     GV1.DataBind()
End If

似乎一切正常,我得到了按 25 条记录分页的结果,我可以在页面之间移动。但我认识到的是,当我在它们之间移动时,页面的内容正在发生变化。记录的数量没有改变,但我可以在第二页再次看到我在第一页看到的记录,当我移回第一页,然后再次回到第二页时,第二页的内容发生了变化,我看到了一组不同的记录。

我已将 tempSqlStr 值打印到所有页面,它在所有页面上都是相同的(它不在“not page.ispostback”部分)。

会不会是因为我在Page_Load部分构造了tempSqlStr,而GV1_PageIndex_Changing看不到值?如果是这样,为什么以下页面显示记录?

感谢任何评论。谢谢。

【问题讨论】:

  • 问题很可能是您没有对返回的结果进行排序,这就是原因。执行你的select语句5次,看看结果是否一样,你就知道是不是这样了。如果是,则在您的查询中添加 order by。让我知道这是否解决了您的问题,否则我们可以进一步研究......
  • 没错!非常感谢!实际上,我在查询中有 ORDER BY ,但最低顺序级别是日期类型,并且每次查询运行时,具有相同日期的记录似乎都以不同的顺序排序。我在 ORDER BY 子句中添加了表 ID,现在每次查询运行时它都会按结果给出相同的顺序。

标签: vb.net gridview paging data-binding


【解决方案1】:

问题很可能是您没有对返回的结果进行排序,这就是原因。执行你的select语句5次,看看结果是否一样,你就知道是不是这样了。如果是,则在您的查询中添加 order by。让我知道这是否解决了您的问题,否则我们可以进一步研究......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多