2015-09-28 2 views
0

У меня есть вложенный аккордеон, и я хочу найти контроль внутри него.Ajax Toolkit Вложенный контроль аккордеона

Вот 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> 

Я хочу, чтобы получить значение для каждого «txtFirst» на события нажатия кнопки. Пожалуйста, укажите пример кода. Заранее спасибо.

В настоящее время я использую этот код и не получить никакого результата

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; 
      } 
     } 
    } 
} 

ответ

2

Вы не можете доступ к элементам управления внутри ContentTemplate аккордеона в. К сожалению, этот элемент управления не предоставляет свойство ContentTemplateContainer, как, например, UpdatePanel.

Попробуйте разместить вложенные аккордеоны внутри аккордеонных панелей вместо их размещения в ContentTemplate.

+0

Спасибо Fadil. Можете ли вы предоставить какой-либо образец кода, чтобы я мог легко понять? –

Смежные вопросы