【发布时间】:2013-12-22 02:47:50
【问题描述】:
updatepanel 分页/排序问题中的另一个网格视图。
Gridview 看起来像这样:
<asp:UpdatePanel runat="server"
ID="upGdvPendingReview"
ChildrenAsTriggers="true"
UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView
ID="gdvPendingReview"
runat="server"
PageSize="10"
AllowPaging="true"
AllowSorting="true"
>
<columnCrudHere>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
Gridview 使用 Selecting 事件绑定到 linqdatasource。此代码在没有更新面板的情况下完美运行。如果我将不是内容页面的页面复制到母版页,它也可以完美运行。我已经阅读了很多关于带有分页和排序的更新面板中的 gridview 问题的帖子。事实上,有一个他们在最后得到它的家伙 cmets ,但在使用 MasterPage 时它仍然失败。我尝试在与 gridview 相同的页面中使用脚本管理器并更改脚本管理器的各种选项。为了让它工作,我只需创建一个新页面,复制我的 gridview、linqdatasource、scriptmanager 和代码……然后就可以工作了。这让我想知道页面中是否有其他东西妨碍我。我确实有其他更新面板可以很好地更新内容。所以,这......结合简单提到相同问题的帖子让我感到困惑。
我也尝试过明确列出该事件:
<Triggers>
<asp:AsyncPostBackTrigger ControlID="gdvPendingReview" EventName="PageIndexChanging" />
</Triggers>
这是似乎有人遇到相同问题的帖子(在最后): GridView PAGING inside UpdatePanel does not work for second page change, why?
***更新
随着我继续对此进行测试,它变得更加令人沮丧和迷人。我创建了两个新页面,其中只有 gridview、linqdatasource、scriptmanager 和数据绑定方法。一页没有母版……另一页有母版(但是是全新的干净的,以避免任何可能的干扰)。结果一样!只要我不是指母版页,分页/排序就可以很好地异步工作。 :(
***更新
我应该承认我是个骗子。我设置的测试页面(使用 Master)确实有一些之前测试遗留下来的代码。事实上,当我注释掉这段代码时,我的 GridView 分页在使用 MasterPage 时在 UpdatePanel 内工作。罪魁祸首?一个“响应。写”。当我将其关闭时,我可以按需创建问题。在这里“重新学习”了关于测试而不是假设任何事情的重要课程。不过还是有一些谜团。
有趣的是,对于有问题的原始页面,我没有 Response.Write 或任何我可以在我的代码中找到的东西。有没有人想过为什么“Response.Write”会破坏更新面板中的gridview排序/分页?如果是这样,这可能有助于查明正在发生的事情。
谢谢大家!
【问题讨论】:
-
您是否尝试将 UpdateMode 设置为“始终”?
-
是的,先生....在没有大师的页面时可以双向工作。否则无法正常工作。此外,通过“不工作”,我应该澄清当我单击列标题或要转到的页面时没有任何反应。
标签: asp.net gridview updatepanel