Определить, какая панель обновления вызвала обратную передачу? - PullRequest
1 голос
/ 16 ноября 2010

Предположим, у меня есть 3 панели обновления. Как определить, какая панель обновлений вызвала частичную обратную передачу из JavaScript.

Ответы [ 2 ]

3 голосов
/ 16 ноября 2010

Использовать скрытое поле

присвойте значение перед вызовом _dopostback () в javascript, и тем самым на сервере вы можете указать, какая панель обновления является обратной.

1 голос
/ 06 мая 2011

У меня была пользовательская реализация пользовательского веб-элемента управления, где у меня был менеджер, привязанный к полю, затем я пометил ввод атрибутом, чтобы мне было легче его найти. Если вы найдете способ узнать, какие 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>
...