2

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

updatepanel1
 user control1
   textbox1
   textbox2
   textbox3

updatepane2
  usercontrol2
  label1

问候, 阿西夫·哈米德

4

1 回答 1

1

哇,更新面板!这让我回来了。触发 UpdatePanels 从客户端异步“回发”一直有点麻烦。常见的方法是使用隐藏按钮的单击事件注册 AsyncPostBackTrigger,然后在客户端显式调用其单击事件。但是,减少间接层数的解决方案是调用 ASP.NET AJAX 库的 __doPostback() JS 函数。

假设您使用的是 jQuery(考虑到您仍在使用 UpdatePanel,这可能有点牵强!),您可以将事件处理程序添加到 UserControl1 的 'focusout' 事件以触发 UpdatePanel2 的异步回发。我建议将此 JS 放在您的一个 UpdatePanel 之外。

$('#userControl1').on('focusout', function() {
  __doPostback('UpdatePanel2UniqueId', '');
});

我找到了一篇好文章,更详细地解释了使用 __doPostback 的技术。

使用 JavaScript 轻松刷新 UpdatePanel

于 2012-06-25T00:13:57.647 回答