0

我在第 2 和第 3 ajax 手风琴面板中有一个必填字段。我的必填字段验证器上有 setfocus=true,相应的面板不会自动打开。

有没有办法让它打开面板,下一个必填字段在哪里?

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
    <asp:Accordion   
        ID="Accordion1" 
        runat="server">  

    <Panes >
    <asp:AccordionPane runat="server" >
    <Header>General Information </Header>
    <content>
    <asp:textbox id="textbox1" runat="server"/>
    </content>
    </asp:AccordionPane>
    <asp:AccordionPane runat="server" >
    <Header>Other Information </Header>
    <content>
    <asp:textbox id="textbox2" runat="server"/>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" SetFocusOnError="true"  runat="server"
             ErrorMessage="error on textbox 2"  ControlToValidate="textbox2" ForeColor= "Red" ValidationGroup="main">*</asp:RequiredFieldValidator>
    </content>
    </asp:AccordionPane>
<asp:AccordionPane runat="server" >
    <Header>More Information </Header>
    <content>
    <asp:textbox id="textbox3" runat="server"/>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" SetFocusOnError="true"  runat="server"
             ErrorMessage="error on textbox 3"  ControlToValidate="textbox3" ForeColor= "Red" ValidationGroup="main">*</asp:RequiredFieldValidator>
    </content>
    </asp:AccordionPane>
    </asp:accordion>
    //the rest of the code here
    //i typed this up, so please forgive if not everything is case sensitive

在这种情况下,如果我在第一个窗格中,然后单击“验证”按钮,则必填字段位于第二个和第三个窗格中。验证确实失败了,就像它应该的那样,但是用户没有被带到 textbox2 或 textox3 (它们是空的)。我如何对其进行编码,以便在验证失败时将焦点自动设置到下一个失败的文本框?如果我在单击“验证”按钮时已经打开了窗格 2,它确实有效,在这种情况下,焦点设置为 textbox2。但话又说回来,如果我在 textbox2 中放一些东西并再次验证,textbox3 会失败,但没有设置焦点。

希望这是有道理的。

4

1 回答 1

0

一次打开两个手风琴面板并不困难。基本上,该控件不是那样设计的。您可以改用可折叠面板。但是这篇文章指定了一种方法来做到这一点

http://www.c-sharpcorner.com/uploadfile/Zhenia/keeping-multiple-panes-open-in-accordion-web-control/

这里还有使用 JavaScript 打开手风琴面板的链接。

http://forums.asp.net/t/1194270.aspx

jQuery Accordion - 打开页面加载的特定部分

希望这可以帮助

于 2013-03-16T03:00:51.610 回答