3

我有一个 Ajax 手风琴,使用 c# asp.net,带有几个面板。在我的第一个面板中,我有两个必填字段,并在用户单击按钮时进行验证。现在我想在另一个窗格中显示更多内容,但如果我将它们设为必填字段,则导致对其进行验证的按钮单击也会显示第一个面板的消息。

是否可以将每个面板中的验证器分开?我错过了一些完全明显的东西吗?

如果有任何代码有帮助,我将编辑并包含请求的代码。感谢您提供的任何建议。

4

1 回答 1

1

您可能想为此使用ValidationGroups 。

基本上,您可以在要组合为相同值的每个验证控件上设置“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 上的详细示例:指定验证组

于 2012-07-02T13:58:00.787 回答