我有一个 Ajax 手风琴,使用 c# asp.net,带有几个面板。在我的第一个面板中,我有两个必填字段,并在用户单击按钮时进行验证。现在我想在另一个窗格中显示更多内容,但如果我将它们设为必填字段,则导致对其进行验证的按钮单击也会显示第一个面板的消息。
是否可以将每个面板中的验证器分开?我错过了一些完全明显的东西吗?
如果有任何代码有帮助,我将编辑并包含请求的代码。感谢您提供的任何建议。
我有一个 Ajax 手风琴,使用 c# asp.net,带有几个面板。在我的第一个面板中,我有两个必填字段,并在用户单击按钮时进行验证。现在我想在另一个窗格中显示更多内容,但如果我将它们设为必填字段,则导致对其进行验证的按钮单击也会显示第一个面板的消息。
是否可以将每个面板中的验证器分开?我错过了一些完全明显的东西吗?
如果有任何代码有帮助,我将编辑并包含请求的代码。感谢您提供的任何建议。
您可能想为此使用ValidationGroup
s 。
基本上,您可以在要组合为相同值的每个验证控件上设置“ValidationGroup”属性(有点像 CSS 类)。然后,将希望将该组绑定到的按钮的“ValidationGroup”属性设置为相同的字符串。
具体来说,您将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 上的详细示例:指定验证组