ASP.NET:UpdatePanel中的按钮可以导致回发吗?

时间:2014-09-19 13:02:45

标签: asp.net ajax updatepanel modalpopupextender

我在ModalPopupExtender中使用UpdatePanels并且它运行良好(当单击某些控件时允许刷新对话框的某些部分,同时避免完全回发),但是有一件小事情并不完全是我想要的。

默认情况下,“确定”按钮处于禁用状态,并在对话框中进行更改时启用,因此该按钮位于UpdatePanel中。但是,我想点击“确定”按钮以获得完整的回发。有没有"自然"实现这种行为的方法是什么?

N.B。避免完整的回发不仅仅是美学问题:它们会导致对话框从屏幕上消失。

1 个答案:

答案 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 UIBootstrap或其他一些受到良好支持的客户端框架,并使用AJAX将数据传递到服务器。以这种方式组建一个不错的网站要容易得多。