如何停止页面跳转并同时维护面板&;当用户点击数据列表项目时,浏览器滚动位置

本文关键字:数据 用户 列表 项目 位置 滚动 浏览器 amp 何停止 维护面板 | 更新日期: 2023-09-27 18:27:04

我在面板内有一个数据列表

<asp:Panel ID="Panel1" runat="server"  ScrollBars="Vertical">
  <asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal"  OnItemDataBound="DataList1_ItemDataBound" CaptionAlign="Left">
    <ItemTemplate>
       <asp:ImageButton ID="btn1" runat="server" ImageUrl='<%#"~/Images.ashx?Name=" +DataBinder.Eval(Container.DataItem, "Path") %>'
           OnCommand="Item_Command" CommandArgument='<%# Eval("Id").ToString() +";"+Eval("Path")%>' />
    </ItemTemplate>
  </asp:DataList>
</asp:Panel>

在Item_Command上,我将样式添加到btn1中,例如边框和颜色,并获得所选项目的id

string[] str = e.CommandArgument.ToString().Split(';');
Id = Convert.ToInt32(str[0]);

当我选择项目页面正在跳转时,假设我已经将浏览器滚动条滚动到底部,并选择了一个图像浏览器滚动条在顶部,再次在底部,在item_Command上,我启用和禁用了数据列表之外的其他一些btn,如果我将数据列表保留在更新面板中,那么所有其他btn都没有启用或禁用,这就是我不使用更新面板的原因。我拥有更新面板中的所有控件。我试着在任何事件发生后保持浏览器滚动位置,但它不起作用,我正在设置

Page.MaintainScrollPositionOnPostBack = true;
AutoEventWireup="true"

这对我来说也不起作用。我正在使用带有C#的VS20104.0。

有人告诉我,当用户点击数据列表项目时,如何停止页面跳转并保持面板1和浏览器滚动位置?

提前感谢。。

如何停止页面跳转并同时维护面板&;当用户点击数据列表项目时,浏览器滚动位置

在图像按钮的客户端点击事件上使用客户端功能,如

javascript:void(0);

,它在的更新面板中对我有效

<asp:ImageButton OnClientClick="javascript:void(0);" ID="btn1" runat="server" ImageUrl="~/Help2.png" AlternateText="asas"/>

编辑

  1. 按下按钮&updatePanel中的数据列表。Set

UpdateMode=条件

用于udpatePanel。

  1. 当您对dataList行执行操作时。只需像这样手动更新更新面板

//您的图像按钮事件

YourUpdatePanel.Update();

再加上我之前发布的内容,应该可以解决你的问题。此外,您可能不需要使用上面的MainScrollPositionOnPostBack=true。

达米恩。

好吧,我们的想法是:使用一个覆盖整个页面的大更新面板来保持页面滚动,或者使用多个更新面板来覆盖您想要更新的所有项目!

尝试在Page标签中设置MaintainScrollPositionOnPostback为true:

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