在自定义控件中处理JavaScript的最佳方法是什么?

Ear*_*rlz 6 javascript asp.net webforms custom-controls

在ASP.Net中,我有一些自定义控件.我利用了jQuery也帮助了它.好吧,我现在遇到的一个问题(显而易见的,但"坏"的解决方法)是,对于每个用户控件,我需要从内部执行一些代码pageLoad($(document).ready不适用于更新面板).

那么现在我的问题.我需要有两个自定义控件附加到pageLoad事件.

这样做的最佳方式是什么?

我不能这样做

old_pageLoad=pageLoad
pageLoad=function(){... old_pageLoad();}
Run Code Online (Sandbox Code Playgroud)

因为这些自定义控件可以在页面上多次使用,并且脚本需要为控件的每个单个实例运行,如果我在页面上有3个不同的自定义控件,该怎么办?

我提出的唯一方法是这样的东西,似乎超级hackish:

old_pageLoad_<%= MyStaticClass.GetUniqueID() %>=pageLoad;
pageLoad=function(){... old_pageLoad_<%= MyStaticClass.GetUniqueID() %>();}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来处理这样的功能冲突?

我也看过这篇MSDN文章,但它的建议看起来比我目前所做的更糟糕.

Mat*_*nen 1

使用.ScriptManager​ 您在注册脚本时传入对控件的引用,这可确保每当更新控件时(无论是在第一页加载时,还是在更新 UpdatePanel 时)都会运行初始化脚本。