.NET 更新面板 +实时查询
我使用 LiveQuery 来检测元素何时添加到页面。该元素位于 .NET AJAX UpdatePanel 内。刷新 UpdatePanel 时,实时查询不会检测到新元素。
<asp:UpdatePanel runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="refresh" />
</Triggers>
<ContentTemplate>
<a id="but1" href="#">Button 1</a>
</ContentTemplate>
</asp:UpdatePanel>
$('#but1').livequery(function(event) {
alert('Button added');
});
仅当页面首次加载时才会触发警报。刷新 udpatepanel 时不会。
I have used LiveQuery to detect when an element is added to the page. The element is inside an .NET AJAX UpdatePanel. When the UpdatePanel is refreshed, live query does not detect the new element.
<asp:UpdatePanel runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="refresh" />
</Triggers>
<ContentTemplate>
<a id="but1" href="#">Button 1</a>
</ContentTemplate>
</asp:UpdatePanel>
$('#but1').livequery(function(event) {
alert('Button added');
});
The alert only fires when the page is first loaded. Not when the udpatepanel is refreshed.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Live Query 仅在通过 jQuery DOM 操作机制进行更改时才能看到您的更改。在这个答案中类似问题,我努力解决这个问题并提出了一种基于轮询的解决方法。
Live Query only sees your changes when they are made through the jQuery DOM manipulation mechanisms. In this answer to a similar question, I struggled with this problem and suggested a polling-based workaround.
尝试将 jquery 代码包装在 pageLoad 中,如下所示:
您需要在 ScriptManager 标记中添加 EnablePageMethods="true" :
try wrapping the jquery code inside pageLoad like this:
You will need to add the EnablePageMethods="true" inside your ScriptManager tag: