我正在使用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不会关闭?
感谢您的帮助
答案 0 :(得分:3)
我设法在不使用updatepanel的情况下解决了问题。相反,我处理了CreateUserWizard的'Submit'按钮的onClick事件。在这里,我得到了CreateUserWizard控件中存在的ModalPopupExtender实例,并调用了它的Show()
方法。我在<CustomNavigationTemplate>
标记内留下了ModalPopup声明,因此仍然可以访问Cancel
按钮。
答案 1 :(得分:1)
使用客户端验证或使用更新面板包装面板并调用模态扩展器的Show()方法以显示代码隐藏的模式。