2015-04-12 3 views
0

У меня есть некоторый кодКак можно позвонить в 2 этикетку повторителя

<div class="profile-stories"> 
       <asp:Repeater ID="repeatMessage" runat="server" OnItemDataBound="repeatMessage_ItemDataBound"> 
        <ItemTemplate> 
         <article class="story"> 

          <aside class="user-thumb"> 
           <a href="#"> 
            <img src="assets/images/thumb-1.png" alt="" class="img-circle" /> 
           </a> 
          </aside> 

          <div class="story-content"> 

           <!-- story header --> 
           <header> 

            <div class="publisher"> 
             <a href="#">Art Ramadani</a> posted a status update 
             <asp:Label ID="studentName" runat="server"></asp:Label> 
             <asp:Label ID="studentID" runat="server"></asp:Label> 
             <asp:Label ID="msgID" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Mess_Id")%>'></asp:Label> 

             <em><%#DataBinder.Eval(Container.DataItem, "SentDate") %></em> 
            </div> 

            <div class="story-type"> 
             <i class="entypo-feather"></i> 
            </div> 

           </header> 

           <div class="story-main-content"> 
            <p><%#DataBinder.Eval(Container.DataItem, "Message_content")%></p> 
           </div> 


             <footer> 

              <!-- story comments --> 
              <ul class="comments"> 
               <asp:Repeater ID="repeatComment" runat="server"> 
            <ItemTemplate> 
               <li> 
                <div class="user-comment-thumb"> 
                 <img src="assets/images/thumb-1.png" alt="" class="img-circle" width="30" /> 
                </div> 

                <div class="user-comment-content"> 

                 <%--<a href="#" class="user-comment-name">Harold Bella</a>--%> 
                 <asp:Label ID="userComment" CssClass="user-comment-name"></asp:Label> 
                 <%#DataBinder.Eval(Container.DataItem, "Comment_content")%> 


            <div class="user-comment-meta"> 

             <a href="#" class="comment-date"><%#DataBinder.Eval(Container.DataItem, "SentDate")%></a> 

            </div> 

                </div> 
               </li> 
             </ItemTemplate> 
           </asp:Repeater> 
               <li class="comment-form"> 
                <div class="user-comment-thumb"> 
                 <img src="assets/images/thumb-1.png" alt="" class="img-circle" width="30" /> 
                </div> 

                <div class="user-comment-content" runat="server"> 

                 <asp:TextBox ID="txtComment" CssClass="form-control autogrow" TextMode="MultiLine" runat="server"></asp:TextBox> 
                 <asp:LinkButton ID="btnComment" CssClass="btn" Text='<i class="entypo-chat"></i>' runat="server" OnClick="btnComment_Click"></asp:LinkButton> 
                </div> 
               </li> 

              </ul> 

             </footer> 

           <!-- separator --> 
           <hr /> 

          </div> 

         </article> 
        </ItemTemplate> 
       </asp:Repeater> 

      </div> 

Теперь я хочу, чтобы позвонить Контрактное UserComment внутри повторителя repeatComment. Я делаю все, но я могу это сделать, я отлаживаю и получаю userComment = null, хотя я использую repaterComment.FindControl («userComment»), и он не работает. Как я могу решить эту проблему

+1

где код, который вы пробовали? – renakre

+0

Я добавляю код, пожалуйста, помогите мне –

ответ

2

У вас нет доступа к нему напрямую, потому что нет ни одной метки пользователяComment, кроме одного для каждого элемента данных.

Вы можете получить доступ к элементу управления, определенному внутри шаблона элемента ретранслятора, из обработчика событий ItemDataBound.

Прежде всего, необходимо определить его:

<asp:Repeater ID="repeatComment" runat="server" OnItemDataBound="repeatComment_ItemDataBound"> 

, а затем в своем коде позади вы можете сделать что-то вроде этого:

protected void repeatComment_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
     { 
      var userComment = e.Item.FindControl("userComment") as Label; 
     } 
    } 

Я надеюсь, что это может помочь.

+0

Я добавляю код за помощью, пожалуйста, помогите мне –

+0

Не то, что я написал выше достаточно? Просто добавьте определение обработчика события (OnItemDataBound = "repeatComment_ItemDataBound") в код aspx и добавьте метод в код кода, вы увидите, что переменная userComment не будет пустой и будет правильно ссылаться на метку. –

+0

На эту же проблему ответим здесь : http://stackoverflow.com/questions/3626564/asp-net-accessing-web-control-inside-datalist-control?rq=1 –

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