Как я могу принудительно выполнить полную обратную связь с помощью кнопки в UpdatePanel?

Как принудительно выполнить полный пост-возврат с кнопки в UpdatePanel?

Ответ 1

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

Добавьте объект PostBackTrigger к этому свойству, содержащий ControlID элемента управления, которому необходимо вызвать полную обратную передачу.

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
        ...
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="myFullPostBackControlID" />
    </Triggers>
</asp:UpdatePanel>

Ответ 2

Просто добавьте это, потому что никто не имеет. Это можно сделать в кодировке в одной строке кода без какого-либо из вышеперечисленных методов. Просто поместите это в page_load:

Visual Basic

ScriptManager.GetCurrent(Me).RegisterPostBackControl(myButtonID)

С#

ScriptManager.GetCurrent(this).RegisterPostBackControl(myButtonID);

Ответ 3

От здесь:

Используйте элемент управления PostBackTrigger, чтобы включить элементы управления внутри UpdatePanel, чтобы вызвать обратную передачу вместо выполнения асинхронной обратной передачи.

 <Triggers>
    <asp:PostBackTrigger ControlID="controlID" />
 </Triggers>

Ответ 4

У меня была такая же проблема с использованием ImageButton внутри WebDataGrid.

Я положил Line из EvilDr внутри preRender вместо webdatagrid. Отлично работает!

for (int i = 0; i < wdgMyData.Rows.Count; i++)
{
   ScriptManager.GetCurrent(this).RegisterPostBackControl((ImageButton)wdgMyData.Rows[i].Items[3].FindControl("btnDownloadExcel"));
}