简体   繁体   English

Ajax Toolkit嵌套手风琴查找控件

[英]Ajax Toolkit Nested accordion find control

I am having a nested accordion and i want to find control inside it. 我有一个嵌套的手风琴,我想在其中找到控件。

Here is the Html Code, 这是HTML代码,

<div>
                <div>
                    <%--First Level--%>
                    <cc1:Accordion ID="accorFirst" runat="server" RequireOpenedPane="false" SelectedIndex="-1"
                        HeaderCssClass="header-first" HeaderSelectedCssClass="header_selected-first" ContentCssClass="content" ViewStateMode="Enabled" OnItemDataBound="AccordionFirstItemDataBound">
                        <HeaderTemplate>
                            <%#Eval("Name") %>
                        </HeaderTemplate>
                        <ContentTemplate>
                            <%--Second Level--%>
                            <asp:HiddenField ID="hdnIDFirst" runat="server" Value='<%#Eval("Id") %>' />
                            <cc1:Accordion ID="accorSecond" runat="server" RequireOpenedPane="false" SelectedIndex="-1"
                                HeaderCssClass="header-second" HeaderSelectedCssClass="header_selected-second" ContentCssClass="content" ViewStateMode="Enabled" OnItemDataBound="AccordionSecondItemDataBound">
                                <HeaderTemplate>
                                    <%#Eval("Name") %>
                                </HeaderTemplate>
                                <ContentTemplate>
                                    <asp:HiddenField ID="hdnIDSecond" runat="server" Value='<%#Eval("Id") %>' />
                                    <%--Third Level--%>
                                    <cc1:Accordion ID="accorThird" runat="server" RequireOpenedPane="false" SelectedIndex="-1" ViewStateMode="Enabled"
                                        HeaderCssClass="header-third" HeaderSelectedCssClass="header_selected-third" ContentCssClass="content">
                                        <HeaderTemplate>
                                            <%#Eval("Name") %>
                                        </HeaderTemplate>
                                        <ContentTemplate>
                                            <asp:TextBox ID="txtFirst" CssClass="test-class" runat="server"></asp:TextBox>
                                        </ContentTemplate>
                                    </cc1:Accordion>
                                </ContentTemplate>
                            </cc1:Accordion>
                        </ContentTemplate>
                    </cc1:Accordion>
                </div>
            </div>

I want to get value for each "txtFirst" on button click event. 我想获取按钮单击事件中每个“ txtFirst”的值。 Please provide sample code. 请提供示例代码。 Thanks in advance. 提前致谢。

Presently I am using this code and not getting any result 目前,我正在使用此代码,但未得到任何结果

 protected void btnSave_Click(object sender, EventArgs e)
{
    foreach (var first in accorFirst.Panes)
    {
        var accorSecond = first.FindControl("accorSecond") as Accordion;
        foreach (var second in accorSecond.Panes)
        {
            var accorThird = second.FindControl("accorThird") as Accordion;
            foreach (var third in accorThird.Panes)
            {
                var txtFirst = third.FindControl("txtFirst") as TextBox;
                string dataToSave = txtFirst.Text;
            }
        }
    }
}

You can't access controls inside Accordion's ContentTemplate. 您无法访问Accordion的ContentTemplate中的控件。 Unfortunately, this control doesn't provide a ContentTemplateContainer property as for example UpdatePanel does. 不幸的是,该控件没有提供像UpdatePanel这样的ContentTemplateContainer属性。

Try to place nested Accordions inside Accordion Panes instead of placing them in ContentTemplate. 尝试将嵌套的手风琴放置在“手风琴窗格”中,而不是将它们放置在ContentTemplate中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM