Вы можете использовать AsyncPostBackTrigger с UpdatePanel, чтобы сделать это. Поскольку вам нужно что-то, что может вызвать событие, использование кнопки довольно просто, а когда скрыто, работает хорошо.
Если это ваша разметка:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="UpdatePanel1_Load">
<ContentTemplate>
<!-- Contents... -->
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ReloadThePanel" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="ReloadThePanel" runat="server" style="display:none;" />
Когда вы хотите обновить панель, вам просто нужно позвонить:
__doPostBack('<%=ReloadThePanel.ClientID %>', null);
Это заставит ASP.NET думать, что ReloadThePanel был нажат, и JavaScript, автоматически сгенерированный из-за триггера, будет обрабатывать все остальное.
EDIT
Вы можете выполнить чистое обновление JavaScript UpdatePanel без каких-либо триггеров или скрытых кнопок. Вам просто нужно вызвать __doPostBack
с идентификатором на стороне клиента в качестве первого аргумента.
__doPostBack('<%=UpdatePanel1.ClientID %>', null);