-1

リピーター内でこのテキストボックスにアクセスできないのはなぜですか? rgroups itemdatabind で次を使用しましたが、何をしても、オブジェクトを参照できないと言われています。vb.netで回答を提供してください

<asp:Repeater ID="rGroups"  Runat="server">  
<HeaderTemplate>
  <ul id="prod_nav" class="clearfix">  
<asp:TextBox ID="txt"  Text="<%#DataBinder.Eval(Container.DataItem,"groupid")%>" runat="server"> 
  </asp:TextBox> 
</HeaderTemplate>   
<ItemTemplate>        
 <li class="top"><a href="05-Pink-02-Category-List.html" class="top_link">  
<span class="down">      <%#D ataBinder.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="default.aspx?subgrp=<%#DataBinder.Eval(Container.DataItem,"subgroupId")%>"><%#DataBinder.Eval(Container.DataItem,"subgroupname")%></a></li>  
      </ItemTemplate>        
<FooterTemplate>                    </ul>                  </li>                </ul>            </FooterTemplate>    


4

2 に答える 2

1
protected void rGroups_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Header) // For Header
    {
        TextBox txt = e.Item.FindControl("txt") as TextBox;
    }
} 

VB.Net:

Protected Sub rGroups_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles rGroups.ItemDataBound
    If e.Item.ItemType = ListItemType.Header Then
        ' For Header '
        Dim txt As TextBox = TryCast(e.Item.FindControl("txt"), TextBox)
    End If
End Sub

Repeater.ItemDataBound

于 2011-03-29T10:16:56.107 に答える
1

はい、このテキストボックスにアクセスできますが、きれいなコードではありません:

必要なrepeateritem.cotrolsでFindControl関数を呼び出す必要があります

于 2011-03-29T10:18:44.493 に答える