根据在asp.net中丢失的texbox焦点更新updatepanel

时间:2012-06-24 17:54:14

标签: c# asp.net

我有一个带有两个用户控件的asp.net页面。每个都在单独的updatepanel中。一个用户控件有三个文本框。我想根据第一个用户控件中文本/焦点的更改来更新第二个更新面板。如何访问用户控件的文本框和页面中的其他控件,并在更改文本时更新更新面板?

updatepanel1
 user control1
   textbox1
   textbox2
   textbox3

updatepane2
  usercontrol2
  label1

此致 Asif Hameed

1 个答案:

答案 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的技巧。

Easily refresh an UpdatePanel, using JavaScript