我有一个带有两个用户控件的asp.net页面。每个都在单独的updatepanel中。一个用户控件有三个文本框。我想根据第一个用户控件中文本/焦点的更改来更新第二个更新面板。如何访问用户控件的文本框和页面中的其他控件,并在更改文本时更新更新面板?
updatepanel1
user control1
textbox1
textbox2
textbox3
updatepane2
usercontrol2
label1
此致 Asif Hameed
答案 0 :(得分:1)
哇,UpdatePanels!这让我退缩了。从客户端异步触发UpdatePanel到“回发”一直是一个小问题。常见的方法是使用隐藏按钮的单击事件注册AsyncPostBackTrigger,然后在客户端显式调用其click事件。但是,具有少量间接层的解决方案是调用ASP.NET AJAX库的__doPostback()JS函数。
假设你正在使用jQuery(考虑到你仍在使用UpdatePanels,这可能是一个牵强附会!),你可以在UserControl1的'focusout'事件中添加一个事件处理程序来触发UpdatePanel2的异步回发。我建议将这个JS放在你的一个UpdatePanel之外。
$('#userControl1').on('focusout', function() {
__doPostback('UpdatePanel2UniqueId', '');
});
我挖了一篇很好的文章,详细解释了使用__doPostback的技巧。