我在ModalPopupExtender中使用UpdatePanels并且它运行良好(当单击某些控件时允许刷新对话框的某些部分,同时避免完全回发),但是有一件小事情并不完全是我想要的。
默认情况下,“确定”按钮处于禁用状态,并在对话框中进行更改时启用,因此该按钮位于UpdatePanel中。但是,我想点击“确定”按钮以获得完整的回发。有没有"自然"实现这种行为的方法是什么?
N.B。避免完整的回发不仅仅是美学问题:它们会导致对话框从屏幕上消失。
答案 0 :(得分:1)
如果对话框从屏幕上消失,只需在完整回发完成后再次显示该对话框。
if(DialogShouldBeVisible)
{
mpe.Show();
}
无论如何,要导致完整的回发,您只需将其注册为常规PostBackTrigger
而不是AsyncPostBackTrigger
。
<asp:UpdatePanel runat="server">
<Triggers>
<PostBackTrigger ControlId="OkBtn">
</Triggers>
<ContentTemplate>
<asp:Button runat="server" id="OkBtn" />
</ContentTemplate>
</asp:UpdatePanel>
顺便说一句,我建议不要使用UpdatePanel和ModalPopupExtender以及Ajax Control Toolkit中的任何其他内容。它们与其他易于定制的客户端不兼容。相反,请使用dialog from jQuery UI或Bootstrap或其他一些受到良好支持的客户端框架,并使用AJAX将数据传递到服务器。以这种方式组建一个不错的网站要容易得多。