如何停止页面跳转并同时维护面板&;当用户点击数据列表项目时,浏览器滚动位置
本文关键字:数据 用户 列表 项目 位置 滚动 浏览器 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"/>
编辑
- 按下按钮&updatePanel中的数据列表。Set
UpdateMode=条件
用于udpatePanel。
- 当您对dataList行执行操作时。只需像这样手动更新更新面板
//您的图像按钮事件
YourUpdatePanel.Update();
再加上我之前发布的内容,应该可以解决你的问题。此外,您可能不需要使用上面的MainScrollPositionOnPostBack=true。
达米恩。
好吧,我们的想法是:使用一个覆盖整个页面的大更新面板来保持页面滚动,或者使用多个更新面板来覆盖您想要更新的所有项目!
尝试在Page标签中设置MaintainScrollPositionOnPostback
为true:
<%@ Page (...) MaintainScrollPositionOnPostback="true" (...) %>