2009-11-16 2 views
1

приветствиями,ASP.NET AJAX Pageload() с несколькими UpdatePanels

Я работаю с некоторыми ребятами, которые разрабатывают приложения с обновлением панелей.

Я хотел бы использовать DatePicker JQuery на текстовое поле, которое является частью строки, которые могут быть добавлены несколько раз с помощью этой панели обновления, и я получил JavaScript ниже, чтобы успешно работать:

function pageLoad(sender, args) 
{ 
    if(args.get_isPartialLoad()) 
    { 
     $(".datepicker").datepicker({ //rebind to all step datepickers 
     duration: '' 
     }); 
    } 
} 

Тем не менее, на этой странице есть несколько панелей обновлений, поэтому они запускаются при обновлении - есть ли способ добавить параметр или аналогичный, чтобы он запускался только тогда, когда это конкретное событие было необходимо?

Спасибо, Chris

ответ

1

Страница PageRequestManager'sLoaded event имеет более подробную информацию. Аргументы имеют свойство get_panelsUpdated и get_panelsCreated (для вложенных панелей обновлений). Вы можете использовать это, чтобы определить, какие обновления обновили. Вероятно, вы могли просто передать панель обновления'd div в селектор jquery для фильтрации только элементов внутри него.

+0

спасибо вам обоим! – 2009-12-26 12:06:11

1

Это трудно увидеть именно то, что вы делаете без примеров коды, но одна вещи приходит на ум: вы убедитесь, что ваши UpdatePanels только обновление, когда они должны, как совокупность по параметру UpdateMode?

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> 

В UpdateMode по умолчанию всегда, что означает, что если есть много UpdatePanels на странице, они будут все обновления, если какой-либо один из них обновляется, что обычно не то, что вы хотите.