【问题标题】:How to manipulate scroll position after updating gridview row?更新gridview行后如何操作滚动位置?
【发布时间】:2016-08-31 16:24:47
【问题描述】:

学习 asp.net 和 Web 表单。我有一个非常长的网格视图,每行都有一个编辑按钮。用户单击编辑,它执行回发,然后返回另一列现在可用于编辑,并且该按钮已更改为更新和删除按钮。问题是当您单击编辑并发生回发时,它会将您弹回页面顶部。我怎样才能让它回到用户正在查看的位置,或者至少回到唯一可编辑行可见的位置(最好是在视图的中间,而不是顶部)?

【问题讨论】:

  • 从一个混日子迁移到 MVC 的人那里得到它。如果您刚刚开始学习过程,请改为 LEARN MVC。
  • 听起来你需要一些 ajax。在网络表单中,这通常使用<asp:UpdatePanel /> 来实现,我会对此进行研究。
  • MVC 在我的学习清单上,但我与几位年长的开发人员一起工作,我们在 ColdFusion、Classic ASP 和 WebForms 方面拥有 15 年的应用程序,所以我必须先掌握这些.我确实尝试了一个 UpdatePanel,但我无法获得正确的组合并以正确的顺序将它们放到它甚至可以编译的位置。当我将它们放在 UP 中时,我的控件会出错,说没有这样的元素。

标签: asp.net gridview


【解决方案1】:

第一步是将MaintainScrollPositionOnPostback 设置为true 并查看它是否如您所愿。您可以在页面级别进行设置:

<%@ Page MaintainScrollPositionOnPostback="true" ... %>

或在 Web.config 中的应用程序级别:

<system.web>
    <pages maintainScrollPositionOnPostBack="true" ... />
    ...
</system.web>

【讨论】:

  • 当有像 AjaxToolkit 中那样的可折叠面板时,这是否也有效?我只是在理论上,如果页面的实际长度根据折叠的面板数量而变化,那么识别滚动位置会更加困难。我只是去尝试一下,但那些正在其他人的应用程序中使用,我是新人,在我知道我在说什么之前不想插手。
  • 我不知道;您可以在尝试后告诉我们。当然,避免完整的页面刷新将是一个更清洁的解决方案。正如 zgood 所建议的那样,可以在 ASP.NET WebForms 中使用 UpdatePanels 来实现这一点。在您的情况下,您必须将整个 GridView 放在 UpdatePanel 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-14
  • 2013-09-10
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 2014-08-10
相关资源
最近更新 更多