2010-01-12 5 views
2

У меня есть пользовательский элемент управления, написанный на C# на странице Telerik ajaxified. Я написал контекстное меню с помощью RadContextMenu, и все работает отлично, за исключением одного из моих пунктов меню «Обновить». Как я могу обновить свой пользовательский элемент управления из javascript? В основном это необходимо для некоторых, как заставить TelerikAjaxManager обновить мой контроль.Выполнение методов из пользовательского элемента управления ASP.NET

ответ

1

Используйте метод ajaxRequestWithTarget() RadAjaxManager для отправки Ajax-запроса на сервер. Предоставляя целевой вызов функции, RadAjaxManager отправляет асинхронную обратную передачу на сервер, информируя сервер о том, что предоставленный элемент управления был инициатором обратной передачи. Вы можете добавить следующее событие-обработчик, когда пункт контекстного меню щелкнул:

function contextMenu_Refresh() { 
    var ajaxManager = $find('<%= RadAjaxManager.GetCurrent(this.Page).ClientID %>'); 
    ajaxManager.ajaxRequestWithTarget('<%= MyControl.ClientID %>'); 
} 

Имейте в виду, что вы также должны проводную до соответствующих параметров Ajax в RadAjaxManager, так что он будет выполнять запрос на обновление ваш контроль, когда ответ отправляется с сервера.

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> 
    <AjaxSettings> 
     <telerik:AjaxSetting AjaxControlID="MyControl"> 
      <UpdatedControls> 
       <telerik:AjaxUpdatedControl ControlID="MyControl" /> 
       <!-- Add other controls to be updated here --> 
      </UpdatedControls> 
     </telerik:AjaxSetting> 
    </AjaxSettings> 
</telerik:RadAjaxManager> 

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

+0

ajaxRequestWithTarget ('<% = MyControl.UniqueID%>') :-) Этот метод нуждается в UniqueID, а не в ClientID. –

0

Проверьте документацию на их клиентскую функцию ajaxRequestWithTarget(). Это позволит вам имитировать обратную передачу от элемента управления, такого как ваш пункт меню.

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