我有一个Ajax手风琴,使用c#asp.net,有几个面板。在我的第一个面板中,我有两个必填字段,并在用户单击按钮时进行验证。现在我想在另一个窗格中使用更多内容,但是如果我将它们设置为必填字段,则导致对它们进行验证的按钮单击也会显示第一个面板的消息。
是否有时间将每个面板中的验证器分开?我错过了一些完全明显的东西吗?
如果有任何代码有帮助,我将编辑并包含请求的代码。感谢您能够提供的任何建议。
您可能希望为此使用ValidationGroup
s。
基本上,您可以在要组合为相同值的每个验证控件上设置"ValidationGroup"属性(有点像CSS类)。 然后,将要绑定到的按钮的"验证组"属性设置为同一字符串。
具体而言,你将Panel1
容器中的所有验证控件设置为同一组(因此ValidationGroup="panelOneGroup"
添加到其标记中)。 然后,将同一属性添加到仅要验证该面板的按钮。
像这样:
<ajaxToolkit:Accordion ID="myAccordion" >
<Panes>
<ajaxToolkit:AccordionPane >
<Content>
<asp:RequiredFieldValidator id="validator1"
ValidationGroup="panelOneGroup" >
</asp:RequiredFieldValidator>
<asp:RequiredFieldValidator id="validator2"
ValidationGroup="panelOneGroup" >
</asp:RequiredFieldValidator>
<asp:Button ID="button1"
ValidationGroup="panelOneGroup" />
</Content>
</ajaxToolkit:AccordionPane >
<ajaxToolkit:AccordionPane >
<Content>
<asp:RequiredFieldValidator id="validator3"
ValidationGroup="panelTwoGroup" >
</asp:RequiredFieldValidator>
<asp:RequiredFieldValidator id="validator4"
ValidationGroup="panelTwoGroup" >
</asp:RequiredFieldValidator>
<asp:Button ID="button2"
ValidationGroup="panelTwoGroup" />
</Content>
</ajaxToolkit:AccordionPane >
</Panes>
</ajaxToolkit:Accordion >
有关 MSDN 的详细示例可在此处找到:指定验证组