当我在处理程序中显示图像时,如何使用 Ajax 进行更新?
我有一个复杂的页面。基本上,它是一个通过处理程序显示图像的 ListView。分页是通过数据分页器完成的。这一切都包含在 Ajax UpdatePanel 中,因此可以无缝分页。
当用户看到他们喜欢的图像并单击它时,它应该显示在 ListView 上方的图像中。当我不使用 updatePanel 时,这可以工作,但是当然,然后我就会闪烁。将其包装在更新面板中会导致分页工作。当用户单击图像时,它会按预期转到数据库,但它根本不会更新正在显示的图像。
以下是如何定义单击的图像。
<asp:ImageButton ID="imgbtnImage" runat="server" ImageUrl='<%#"~\Handlers\ThumbnailDBHandler.ashx?id=" & Eval("ID")%>' CommandArgument='<%#Eval("ID")%>'/>
I have a complex page. Basically, it is a ListView with images displayed through handlers. Paging is done through a datapager. This is all wrapped in an Ajax UpdatePanel so it pages seamlessly.
When the user sees a image they like and click on it, it should display in an image above the ListView. This work when I DON'T use the updatePanel, but of course, then I get flicker. Wrapping it in an update panel results in the paging working. When the user clicks an image it goes to the db as expected, but it simply never updates the image being displayed.
Here is how the image that is clicked on is defined.
<asp:ImageButton ID="imgbtnImage" runat="server" ImageUrl='<%#"~\Handlers\ThumbnailDBHandler.ashx?id=" & Eval("ID")%>' CommandArgument='<%#Eval("ID")%>'/>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否 asp:ImageButton 保留在“更新面板中”?还有一件事,设置更新面板使用子进程作为触发器。因为在二进制控件中回发的事件有时不是控件本身。它使用可绑定控件进行回发。
例如。我在每个网格视图行中都有按钮。单击按钮时,更新面板不会读取单击事件。它将事件读取为 GridViewRowCommand。不是按钮点击。
因此,将更新面板设置为使用子级作为触发器并设置为始终更新应该可以解决问题
does yout asp:ImageButton stays "in" update panel? 1 more thing, set update panel to use child as trigger. Because the event that postback in binable control is sometime not the control itself. It use the bindable control to postback.
eg. i have button in each grid view rows. when the button clicked, the update panel doesn't read the click event. it read the event as GridViewRowCommand. Not button click.
so set update panel to use child as trigger ans set to always update should solve the problem