У меня была пользовательская реализация пользовательского веб-элемента управления, где у меня был менеджер, привязанный к полю, затем я пометил ввод атрибутом, чтобы мне было легче его найти. Если вы найдете способ узнать, какие updatePanels вы используетеесли бы, то вы могли бы сделать это тоже
Это простой пример, и причины для его работы будут очень длинным объяснением, но я хотел бы оставить это здесь на случай, если кто-тонаходит это полезным
Возможно, в нем есть какая-то ошибка, я тороплюсь уйти, возможно, сегодня я смогу проверить ее позже
Если вы поместите это в панель обновления, вы должны увидеть ееработает
<span id="foo" customattr="foo_msg">click for foo_msg</span>
Финаллу, что я сделал, было что-то вроде этого
<html>
<head>
//make sure this executes on load
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myHandler);
function MyManager(message){
this.message=message;
this.notify=function(){alert(this.message);}
}
$(
function(){
$("[customattr=Y]").each(
function(){
this.objAttr=new MyManager($(this).attr("customattr"));
$.data(document.body,this.id,objAttr);
$(this).click(
function(){
this.objAttr.notify();
}
)
}
}
);
function myHandler(a,b){
$("[customattr]").each(
function(){
if(!this.objAttr){
//smells like postback regenerated this field
//let's get it back
this.objAttr=$.data(document.body,this.id);
}
}
);
}
</head>
<body>
<span id="foo" customattr="foo_msg">click for foo_msg</span>
<span id="bar" customattr="bar_msg">click for bar_msg</span>
</body>
<html>