Ajax 手风琴窗格:仅由其窗格中的按钮触发的单独必填字段验证器



我有一个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 的详细示例可在此处找到:指定验证组

最新更新