Как заставить полный пост-назад от кнопки в UpdatePanel?
Как заставить полный пост-назад от кнопки в UpdatePanel?
5 ответов:
можно использовать триггеры свойства UpdatePanel для регистрации действий, которые вызывают полную обратную передачу.
добавить a PostBackTrigger объект к этому свойству, containig ControlID элемента управления, который должен вызвать полную обратную передачу.
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> <ContentTemplate> ... </ContentTemplate> <Triggers> <asp:PostBackTrigger ControlID="myFullPostBackControlID" /> </Triggers> </asp:UpdatePanel>
просто добавив Это, потому что никто другой не имеет. Это можно сделать в коде позади в одной строке кода без каких-либо из вышеперечисленных методов. Просто поместите это в page_load:
Visual Basic
ScriptManager.GetCurrent(Me).RegisterPostBackControl(myButtonID)
C#
ScriptManager.GetCurrent(this).RegisterPostBackControl(myButtonID);
С здесь:
используйте элемент управления PostBackTrigger, чтобы включить элементы управления внутри UpdatePanel, чтобы вызвать обратную передачу вместо выполнения асинхронной обратной передачи.
<Triggers> <asp:PostBackTrigger ControlID="controlID" /> </Triggers>
У меня была такая же проблема с использованием ImageButton внутри WebDataGrid.
вместо этого я помещаю строку из EvilDr внутри пререндера для webdatagrid. Работал отлично!
for (int i = 0; i < wdgMyData.Rows.Count; i++) { ScriptManager.GetCurrent(this).RegisterPostBackControl((ImageButton)wdgMyData.Rows[i].Items[3].FindControl("btnDownloadExcel")); }
его старый вопрос есть немного хитрый подход, а также, когда все находится в панели обновления и вы хотите сделать полный пост обратно, так что ваши документ.Готов код работает на команду.
1. создать фиктивную кнопку за пределами панели обновления и нажмите на нее из кода позади, как это
ScriptManager.RegisterStartupScript(Page, this.GetType(), "ResetDoc", "ResetDocumentReady();", true);
2. определить функцию на переднем конце такой
function ResetDocumentReady() { $("[id$=DummyButton]").click(); }
примечание: но лучший способ-это использование триггер, ответ, опубликованный @Thibault Falise :)