2010-03-24 3 views
1

Я ищу самый простой способ скрыть UpdatePanel, ожидая ответа на отправку. Материал like described here - с помощью Ajax Control Toolkit и UpdatePanelAnimationExtender одновременно излишеством и вызывает некоторые вопросы, а именно:Скрыть UpdatePanel во время UpdateProgress

  • Потому что есть несколько скрытых панелей на странице он получает все перепутались и скрывает неправильные панели. Я понятия не имею, почему это происходит;
  • Я не могу найти способ указать, что только одна кнопка должна запускать анимацию. Я указал в UpdatePanel, но, похоже, это игнорируется, и все элементы управления внутри панели запускают анимацию.

Простым решением для javascript было бы идеально. Проблема здесь в ASP.NET любит генерировать странные идентификаторы для элементов управления во время выполнения. Любые решения для этого?

Заранее спасибо.

ответ

0

I предложит использовать jQuery. Это облегчит вам жизнь. Таким образом, чтобы обойти «странно ID» вопрос вы могли бы сделать некоторые JQuery, как это:

$('#<%= someASPControl.ClientID %>').hide(); 

и показать:

$('#<%= someASPControl.ClientID %>').show(); 

Это использует JQuery, чтобы захватить элемент по идентификатору, а затем вы можете делай то, что хочешь. Трюк - это «.ClientID», который будет захватывать идентификатор, который отправляет .net.

0

Вы можете использует теги кода в вашей HTML-страницы и использовать ClientId свойство управления выплюнуть asp.net ID генерирует:

$('#<%= elementName.ClientID %>').hide(); 

EDIT: Этот пример использует JQuery КСТАТИ

0

Ручка PageRequestManager beginRequest и endRequest события для управления видимостью UpdatePanel во время постбэков:

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_beginRequest(
     function (sender, args) { 
      $get("<%=someUpdatePanel.ClientID %>").style.display = "none"; 
     } 
    ); 
    prm.add_endRequest(
     function (sender, args) { 
      $get("<%=someUpdatePanel.ClientID %>").style.display = ""; 
     } 
    ); 

Кроме того, добавить DisplayAfter = "0" в assotiated UpdateProgress контроль, чтобы предотвратить задержку между UpdatePanel сокрытием и UpdateProgress показывая