2011-01-12 7 views
4

У меня есть UpdatePanel с указанным ContentTemplate. Когда страница загружается, пользователь может выполнить некоторую работу AJAX в другой части страницы. Затем, после завершения работы, я хотел бы обновить только контент внутри UpdatePanel, но без нажатия каких-либо кнопок и т. Д. Я должен быть сделан автоматически с использованием JavaScript, когда ранее начата работа AJAX. Как это сделать без ручного нажатия на кнопку триггера?Обновление UpdatePanel без кнопки запуска

EDIT:

Хорошо, я следовал за этим _doPostBack правило, и вся страница размещена.

<asp:UpdatePanel ID="panelAttachments" runat="server"> 
     <ContentTemplate> 
    ........ 
     </ContentTemplate> 
    </asp:UpdatePanel> 
    <input type="text" name="test" onchange="__doPostBack('<%=panelAttachments.UniqueID %>',''); return false;" /> 
</td> 

Спасибо, Pawel

ответ

7

Чтобы обновить панель обновления с JavaScript:

__doPostBack(updatePanelUniqueID,'');

Первый параметр является UniqueID (не CientID) параметра UpdatePanel.The 2 является необязательным аргументы, которые вы можете передать, которые будут доступны для вашего кода сервера. Оба хранятся в скрытых полях формы с помощью ASP.NET, вы можете получить доступ к ним в коде:

Request.Form["__EVENTTARGET"]; 
Request.Form["__EVENTARGUMENT"]; 

Но если вы просто хотите, чтобы обновить панель и не нужно передавать какой-либо дополнительной информации от клиента, вы может игнорировать второй аргумент.

Если вы посмотрите на HTML, сгенерированный ASP.NET для управления обратной связью async, вы увидите, что это именно так.

+0

Не могли бы вы показать, как будет вызываться этот javascript, например, из текстового ввода события TextChanged? – DOK

+1

'' –

+1

Кроме того, 'TextChanged' является серверной event, 'onchange' - это событие клиента для текстового поля. 'TextChanged' заставляет серверный код запускать после обратной передачи. Обратите внимание, что событие клиента будет срабатывать, как только фокус покинет элемент управления текстовым полем. Если это то, что вы хотите, пример верен, но когда вы говорите «после завершения работы», может быть, вы не хотите, чтобы это происходило каждый раз при изменении любого текстового поля? Вы можете добавить этот крючок на любое клиентское событие, которое вы хотите, это может быть не лучший способ для вашей ситуации. –

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