一般来说,我对 jquery 和 javascript 编程很陌生,所以请耐心等待。
我有一个包含 jquery 自动完成插件实例的 ASP.NET Web 用户控件 (region.ascx)。jquery 代码(为简洁起见,我截断了代码)是这样的:
$(function () {
initializerRegion();
});
var prmInstance = Sys.WebForms.PageRequestManager.getInstance();
prmInstance.add_endRequest(function () {
//you need to re-bind your jquery events here
initializerRegion();
});
function initializerRegion() {
$($get('<%= autoRegion.ClientID %>')).autocomplete({
source: function (request, response) {..........................
当 asp.net 页面上只有一个控件实例时,该控件可以正常工作。我有一个情况,我有两个单独的用户控件(Org.ascx 和 Place.ascx),每个控件都有一个 region.ascx 实例,它们位于单个 asp.net 页面上,因此我最终得到了上述代码的 2 个实例. 在这种情况下,只有最后一个实例(对于 place.ascx)被正确初始化并工作。另一个实例(org.ascx)不做任何事情。
我想我可以通过将上面的 Initializer 代码放入每个需要它的控件中来解决这个问题,基本上摆脱了我的 region.ascx 控件。我有一种感觉,如果我这样做并使初始化函数的名称独一无二,它可能会起作用。
我的问题是:我这样做正确吗?有没有解决的办法?