防止在回发时关闭ModalPopup

时间:2010-02-03 02:45:16

标签: asp.net ajax postback modalpopupextender createuserwizard

我正在使用AJAX工具包中的ModalPopupExtender控件。此控件扩展包含CreateUserWizard控件的面板。但是,CreateUserWizard控件的验证会导致回发到服务器,从而关闭弹出窗口。即使在回发之后,我也希望弹出窗口保持打开状态。根据我的收集,我应该使用UpdatePanel。但是,我似乎无法让它发挥作用。它之所以相当棘手,是因为结构应该

ModalPopupExtender
<Panel>
<UpdatePanel>
<ContentTemplate>...</ContentTemplate>
</UpdatePanel>
</Panel>

我无法遵循此结构,因为ModalPopupExtender依赖于CreateUserWizard控件中包含的按钮。因此,必须在<asp:CreateUserWizard> </asp:CreateUserWizard>标记内添加。我想在CreateUserWizard控件中内置提交按钮来强制更新面板。关于结构应该如何的任何建议?我的代码是高度定制的,所以它很长。但是,关键结构与此类似:

<asp:Panel>
  <asp:CreateUserWizard>
    <WizardSteps>
       <asp:CreateUserWizardStep>
          <ContentTemplate>

          //Form Controls here
          </ContentTemplate>
          <CustomNavigationTemplate>
               //The SUBMIT button that should force update
               //CANCEL button
             <asp:ModalPopupExtender /> //References the CANCEL button therefore has to be here
          </CustomNavigationTemplate>

       </asp:CreateUserWizardStep>
    </WizardSteps>
</asp:CreateUserWizard>

</asp:Panel>

放置UpdatePanel的行踪是什么?或者是否有更有效的方法来确保ModalPopup不会关闭?

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

我设法在不使用updatepanel的情况下解决了问题。相反,我处理了CreateUserWizard的'Submit'按钮的onClick事件。在这里,我得到了CreateUserWizard控件中存在的ModalPopupExtender实例,并调用了它的Show()方法。我在<CustomNavigationTemplate>标记内留下了ModalPopup声明,因此仍然可以访问Cancel按钮。

答案 1 :(得分:1)

使用客户端验证或使用更新面板包装面板并调用模态扩展器的Show()方法以显示代码隐藏的模式。