2016-03-12 4 views
1

Вверх по редактированию Я хочу скрыть MyTextBox, когда MYCheckBox проверяется с помощью javascript. Я могу найти confrols в ParentFormView используяHIde/Show Элементы управления в вложенном FormView с использованием Javascript

var MyTextboxINParentFV= document.getElementById('<%=ParentFormView.FindControl("MyTextboxINParentFV").ClientID %>'); 

Но теперь я не могу получить контроль в ChildFormView, Может ли один помочь мне, пожалуйста?

<asp:formview ID="ParentFormview" runat="server"> 
    <ItemTemplate> 
       <asp:TextBox ID="MyTextBoxInParentFV" runat="server"></asp:TextBox> 
       <asp:CheckBox ID="MYCheckBoxInParentFV" runat="server"></asp:CheckBox>  
     <asp:FormView ID ="ChildFormView1" runat="server"> 
      <ItemTemplate> 
       <asp:TextBox ID="MyTextBoxInChildFV" runat="server"></asp:TextBox> 
       <asp:CheckBox ID="MYCheckBoxInChildFV" runat="server"></asp:CheckBox> 
      </ItemTemplate> 
     </asp:FormView> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="MyTextBoxInParentFv" runat="server"></asp:TextBox> 
       <asp:CheckBox ID="MYCheckBoxInParentFV" runat="server"></asp:CheckBox> 
     <asp:FormView ID="ChildFormView2" runat="server"> 
      <EditItemTemplate> 
       <asp:TextBox ID="MyTextBoxInChildFV" runat="server"></asp:TextBox> 
       <asp:CheckBox ID="MYCheckBoxInChildFV" runat="server"></asp:CheckBox> 
      </EditItemTemplate>    
     </asp:FormView> 
    </EditItemTemplate> 
</asp:formview> 

ответ

0

Вы можете установить имя класса управления внутренней FormView:

<asp:FormView ID ="ChildFormView1" runat="server"> 
    <ItemTemplate> 
     <asp:TextBox ID="MyTextBoxInChildFV" runat="server" CssClass="childTextBox"></asp:TextBox> 
     <asp:CheckBox ID="MYCheckBoxInChildFV" runat="server" CssClass="childCheckBox"></asp:CheckBox> 
    </ItemTemplate> 
</asp:FormView> 

и получить их с таким именем класса:

var childFV = document.getElementById('<%=ParentFormView.FindControl("ChildFormView1").ClientID %>'); 
var childTextBoxes = childFV.getElementsByClassName('childTextBox'); 
var childCheckBoxes = childFV.getElementsByClassName('childCheckBox'); 
+0

Спасибо за ответ сэр! когда я пытаюсь получить доступ к ChildFormView2, используя вашу логику, я получаю исключение для исключения ссылок в pageLoad, есть ли способ избежать этого? – BireMan

+0

Только элемент в режиме редактирования должен дать вам действительную ссылку на ChildFormView2. Если элемент не находится в режиме редактирования, вы не найдете этот элемент. – ConnorsFan

+0

Кстати, ваш родительский FormView содержит один элемент? Я немного удивлен, что вы можете получить доступ к своим детям по их идентификатору. Если у него более одного элемента, вам обязательно нужно указать, к какому элементу принадлежат эти дети. – ConnorsFan

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