【发布时间】:2009-03-05 16:20:12
【问题描述】:
我有一个 aspx 页面,上面有两个 UserControl;每个主要是一个 ModalPopupExtender。一个有验证器;一个没有。没有带有 CausesValidation="false" 属性的提交按钮的那个。
点击提交按钮后,什么也没有发生。再次单击它,回发将按预期进行。这里显然存在一些验证问题,因为如果我从页面中删除所有验证器,则回发在第一次点击时成功。
这是怎么回事?
【问题讨论】:
我有一个 aspx 页面,上面有两个 UserControl;每个主要是一个 ModalPopupExtender。一个有验证器;一个没有。没有带有 CausesValidation="false" 属性的提交按钮的那个。
点击提交按钮后,什么也没有发生。再次单击它,回发将按预期进行。这里显然存在一些验证问题,因为如果我从页面中删除所有验证器,则回发在第一次点击时成功。
这是怎么回事?
【问题讨论】:
没有看到代码,我不能肯定地说,但听起来您可能需要使用验证组。验证组将设置在验证组件以及回发页面的按钮上。
【讨论】:
确保显示 ModalPopups 的按钮也标记为 CausesValidation=false。发生的事情是非验证对话框的“显示对话框”按钮没有以这种方式标记;这导致整个页面在显示该对话框时进行验证 - 包括 other 对话框,该对话框确实进行了验证并且失败了。这导致提交按钮显然无缘无故失败。
故事的寓意:确保在任何不需要它的按钮上使用 CausesValidation,并使用验证组来分隔各个页面部分,尤其是当页面的某些部分不可见时。
【讨论】:
您是否尝试过从模式弹出窗口中删除 OK 按钮属性?
【讨论】: