如何使用jQuery绑定到ASP.NET UpdatePanel事件?

时间:2011-08-24 15:38:13

标签: jquery asp.net updatepanel

Nutshell版本:我需要知道如何在网站上的任何UpdatePanel更新时绑定要调用的JavaScript函数。

详细版本:我有一个我们正在为客户建立的调查网站。该网站使用jQuery Mobile,因此所有控件都是为移动设备和网络呈现的。这整体效果很好。

问题是ASP.NET UpdatePanel中的任何内容,当面板刷新新信息时,控件不会被jQuery mobile重新呈现。换句话说,当页面首次加载时,所有控件都被样式化,但如果UpdatePanel更新,则面板中的所有控件都会丢失其样式并返回其默认外观。

对此的修复很容易,我只需要对已更新的div调用'create',例如:

$('div').trigger('create');

'create'将重新解析给定DIV中的控件并对其进行样式化。当它是我的UpdatePanel和MY控件时,我可以“硬连线”那里的那个电话。

但是,在一个页面上,我们使用的是ReportViewer控件。这里的问题是ReportViewer呈现它自己的输出,包括将所有内容包装在UpdatePanel中,从Dropdown中选择一个选项的那一刻,所有样式都丢失了。

我需要一种方法(想到jQuery .bind())绑定到页面上的任何UpdatePanel,如果它们刷新,则调用'create'函数。

我在网站上有一个母版页,这对于放入此代码非常完美(我认为)。我只是不知道要键入什么,或者语法是什么。

任何想法/想法/建议?

1 个答案:

答案 0 :(得分:2)

您可以绑定到load事件,它会在元素加载完新内容时触发。

$('div').load(function () {
  $(this).trigger('create');
});