2010-12-03 3 views
1

У меня есть asp: UpdatePanel, которая скрыта или нет на основе кода asp: DropDownList в OnSelectedIndexChanged.Как я могу использовать функцию jquery .change для запуска после .net OnSelectedIndexChanged?

Когда Update Panel показано, есть некоторые JQuery, чтобы выделить новую область:

$(document).ready(function(){ 
     $('#Alert').animate({backgroundColor:'#FF953F'}); 
     $('#Alert').animate({backgroundColor:'white'}, 3000); 
    }); 

Это прекрасно работает, как только панель обновления показать еще раз, но первый раз, когда он возвращается, то JQuery является перед тем, как закодировать код, так что существует пауза 3000 мс, а затем панель отображается без подсветки.

Как я могу убедиться, что jquery работает после отображения панели?

Я попытался добавив, если видимое и задержка на JavaScript:

 $('#<%=ddlInfo.ClientID %>').change(function(){ 
      if($('#Alert').is(':visible')){ 
       $('#Alert').animate({backgroundColor:'#FF953F'}); 
       $('#Alert').animate({backgroundColor:'white'}, 3000); 
      }; 
     }); 

Это не сделать изменения как JavaScript работает до панели обратно.

И задержка:

$('#Alert').delay(1000).animate({backgroundColor:'#FF953F'}); 

Это прекрасно работало на затягивание панели показывались в качестве кода позади пришлось ждать, пока задержка не была завершена, прежде чем он смог показать панель снова.

Спасибо за любые идеи по этому вопросу.

ответ

1

Вы еще не пробовали EndRequestHandler?

Взгляните на следующее сообщение.

http://zeemalik.wordpress.com/2007/11/27/how-to-call-client-side-javascript-function-after-an-updatepanel-asychronous-ajax-request-is-over/

И искать endRequestHandler на форумах asp.net имеет ряд хороших постов.

Надеюсь, это поможет.

Боб

+0

Это выглядит многообещающим. До сих пор мне удалось получить большую часть того, что я искал. Спасибо за поздний ответ :) – InsertOldUserIDHere 2011-01-11 00:37:22

0

Не можете ли вы зарегистрировать скрипт через диспетчер сценариев страниц в конце обработчика событий OnSelectedIndexChanged?

Возможно, вам также потребуется вручную сообщить об обновлении панели обновления.

+0

Сценарий уже загружен хотя менеджер сценария тег, но я не уверен, что вы имеете в виду «в конце вашего OnSelectIndexChanged обработчика событий.» – InsertOldUserIDHere 2010-12-03 14:41:53

0

Попробуйте это:

$('#<%=ddlInfo.ClientID %>').load(function(){ 
     if($(this).is(':visible')) 
     { 
      $('#Alert').animate({backgroundColor:'#FF953F'}); 
      $('#Alert').animate({backgroundColor:'white'}, 3000); 
     }; 
    }); 

Я не знаю, как эта страница, но вам нужно сделать что-то так.

Надеюсь, это поможет! ;)

+0

Я сделал это, и пока я не получил ошибок, это не сработало. С помощью «.load» панель никогда не выделяется. С помощью «.change» панель подсвечивается, если она уже видна. – InsertOldUserIDHere 2010-12-03 14:37:27

 Смежные вопросы

  • Нет связанных вопросов^_^