使用 Sys.Application.add_load 重新绑定控件的事件





0/5 (0投票)
jQuery 在跨浏览器绑定控件事件方面提供了很大帮助。 但在使用 Asp.Net Ajax UpdatePanel 时,存在一些问题
jQuery 在跨浏览器绑定控件事件方面提供了很大帮助。 但在使用 Asp.Net Ajax UpdatePanel 时,这样做存在一些问题。
这是一个 jQuery 中 document.ready 函数的示例代码,它有助于将事件绑定到控件
假设你在你的 webform 中有一个 div 元素,你想让它保持隐藏状态,直到被要求显示。
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id='rightSide'>一些内容.......</div>
<asp:Button ID="Button1" runat="server" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
你可以使用以下代码来实现上述功能: $(document).ready(function() {
$('div#rightSide').hide();
});
这段代码将隐藏 div,直到 updatepanel 发生部分回发。这是因为,updatepanel 内部的内容将在每次部分渲染中刷新。 并且在那个时候,document.ready 函数将不会被执行。
那么我们如何保持上下文...
你可以在 updatepanel 中添加以下代码
Sys.Application.add_load(<function>);
也就是说:
将你的 document.ready 函数重新设计成以下形式: function BindEvents(){
$(document).ready(function() {
$('div#rightSide').hide();\
});
}
然后将此函数添加到应用程序的加载中,也就是说:<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<script>Sys.Application.add_load(BindEvents);</script>
<div id='rightSide'>一些内容.......</div>
<asp:Button ID="Button1" runat="server" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
这是一个 jQuery 中 document.ready 函数的示例代码,它有助于将事件绑定到控件
$(document).ready(function() {
// 在这里放入你所有的 jQuery 代码。
});
假设你在你的 webform 中有一个 div 元素,你想让它保持隐藏状态,直到被要求显示。
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id='rightSide'>一些内容.......</div>
<asp:Button ID="Button1" runat="server" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
你可以使用以下代码来实现上述功能: $(document).ready(function() {
$('div#rightSide').hide();
});
这段代码将隐藏 div,直到 updatepanel 发生部分回发。这是因为,updatepanel 内部的内容将在每次部分渲染中刷新。 并且在那个时候,document.ready 函数将不会被执行。
那么我们如何保持上下文...
你可以在 updatepanel 中添加以下代码
Sys.Application.add_load(<function>);
也就是说:
将你的 document.ready 函数重新设计成以下形式: function BindEvents(){
$(document).ready(function() {
$('div#rightSide').hide();\
});
}
然后将此函数添加到应用程序的加载中,也就是说:<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<script>Sys.Application.add_load(BindEvents);</script>
<div id='rightSide'>一些内容.......</div>
<asp:Button ID="Button1" runat="server" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
这样每次 updatepanel 内发生部分渲染时,document.ready 都会触发。 从而解决了这个问题。