почему я не могу найти элемент управления txt в этом vb.net asp: repeater независимо от того, что я делаю на rgroups - PullRequest
0 голосов
/ 28 марта 2011

Я не могу найти контрольный текст, который является текстовым полем в повторителе. Я использовал следующее в событии rgroups itemdatabound

------------ код элемента данных

Protected Sub rGroups_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rGroups.ItemDataBound


Dim dv As DataRowView = TryCast(e.Item.DataItem, DataRowView)
If dv IsNot Nothing Then
  Dim rptOrderDetails As Repeater = TryCast(e.Item.FindControl("rSubgroups"), Repeater)
   Dim control1 As Control = rGroups.Items(0).FindControl("txt")
  Dim txtbox As TextBox = DirectCast(control1, TextBox)

    If rptOrderDetails IsNot Nothing Then

      Dim dv_co As New DataView(dssubmenu)

    dv_co.RowFilter = "groupId = '" + txtbox.Text + "'"
      rptOrderDetails.DataSource = dv_co

      rptOrderDetails.DataBind()
    End If
  End If
End Sub

------------ код повторителя

   <asp:Repeater ID="rGroups"  Runat="server">  
 <HeaderTemplate>

  <ul id="prod_nav" class="clearfix">  

   </HeaderTemplate>   
<ItemTemplate>        
<asp:TextBox ID="txt"  Text="<%#DataBinder.Eval(Container.DataItem,"groupid")%>" runat="server">     </asp:TextBox> 

<li class="top"><a href="05-Pink-02-Category-List.html" class="top_link">   <span class="down"> <%#DataBinder.Eval(Container.DataItem,"groupname")%></span></a>   
 <asp:Repeater ID="rSubgroups"  Runat="server">          
 <HeaderTemplate>              

<ul class="sub">          

    <li class="clearfix">    
                    <ul>       
 </HeaderTemplate>            <ItemTemplate> 

         <li><a href="partviewer.aspx?subgrp=<%#DataBinder.Eval(Container.DataItem,"subgroupId")%>">  <%#DataBinder.Eval(Container.DataItem,"subgroupname")%></a></li>  
      </ItemTemplate>        
  <FooterTemplate>                    </ul>                  </li>                </ul>            <        </FooterTemplate>    


1 Ответ

0 голосов
/ 28 марта 2011

Возможно, вы захотите получить элемент управления txt для элемента данных в Repeater, а не из самого элемента управления Repeater. Аргумент eventargs для события ItemDataBound содержит только что созданный RepeaterItem. Именно из этого предмета вы хотите получить свой контроль:

Dim control1 As Control = e.Item.FindControl("txt")
...