如何强制从 UpdatePanel 中的按钮完全回发?
可以使用 UpdatePanel 的 触发器属性注册触发完整回发的操作。
向该属性添加一个 PostBackTrigger对象,其中包含需要触发完整回发的控件的 ControlID。
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> <ContentTemplate> ... </ContentTemplate> <Triggers> <asp:PostBackTrigger ControlID="myFullPostBackControlID" /> </Triggers> </asp:UpdatePanel>
来自 给你:
使用 PostBackTrigger 控件可以启用 UpdatePanel 中的控件以导致回发,而不是执行异步回发。
<Triggers> <asp:PostBackTrigger ControlID="controlID" /> </Triggers>
加上这个是因为其他人都没有。可以在代码隐藏中在一行代码中实现这一点,而不需要使用上述任何方法。把这个放到 page _ load:
VisualBasic
ScriptManager.GetCurrent(Me).RegisterPostBackControl(myButtonID)
C #
ScriptManager.GetCurrent(this).RegisterPostBackControl(myButtonID);
我在 WebDataGrid 中使用 ImageButton 时遇到了同样的问题。
我把来自 EvilDr 的 Line 放在了 webdatagrid 的 preRender 中,效果很好!
for (int i = 0; i < wdgMyData.Rows.Count; i++) { ScriptManager.GetCurrent(this).RegisterPostBackControl((ImageButton)wdgMyData.Rows[i].Items[3].FindControl("btnDownloadExcel")); }
这是一个老问题,有点棘手的方法,以及,当一切都在 更新面板,你想做完整的回来,以便您的 文件,准备好了代码工程点击。
在更新面板外面创建一个虚拟按钮,然后像这样从后面的代码中单击它
ScriptManager.RegisterStartupScript(Page, this.GetType(), "ResetDoc", "ResetDocumentReady();", true);
像这样定义前端的函数
function ResetDocumentReady() { $("[id$=DummyButton]").click(); }
注意: 但是最好的方法是使用触发器,这是由@Thibault Falise :)发布的答案