当我选择一个图像时,如何防止图像列表被重置?

How do I keep a list of images from resetting when I choose one?

我正在使用 ASP.NET 网络表单来设计网站。其中一个页面使用 <DIV> 来保存 asp:ImageButton 控件的滚动列表,每个控件都显示一个图像。目标是能够在可滚动的 DIV 标记内显示一长串图像,使用户更容易选择一个图像而无需使用第三方控件并避免需要分页的控件。这是我构建的 DIV 的示例:

<div id="divOne" runat="server" style="height: 230px; width: 330px; overflow: auto;text-align: center;">
    <asp:ImageButton runat="server" ImageUrl="../Images/image1_small.jpg" AlternateText="Image #1" CommandArgument="Image #1" OnClick="ImagePicked" /><br />
    <asp:ImageButton runat="server" ImageUrl="../Images/image2_small.jpg" AlternateText="Image #2" CommandArgument="Image #2" OnClick="ImagePicked" /><br />
    ...
 </div>

当用户单击图像时,会触发更新页面另一部分的操作。但问题是,当单击图像并触发操作时,图像列表会重置回列表顶部的第一个图像。 我尝试使用 UpdatePanel 来控制它,但它仍然发生。有什么办法可以防止图像列表重置?

如果你只想在回发后保存滚动位置,有几种方法可以做到。最简单的方法是在 onscroll 事件触发时使用 javascript 保存滚动位置,然后在页面加载时恢复保存的值,如下所示: Maintain scroll position of a div within a page on postback

如果这不太适合您,您可以尝试将滚动位置存储在隐藏字段中(请参阅此答案:)。有些人还建议将其存储在 cookie 中,但如果使用该页面的人出于任何原因禁用了 cookie,这可能会适得其反。

希望对您有所帮助!