2015-11-24 12 views
0

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

<asp:Repeater ID="rptImages" runat="server"> 
       <HeaderTemplate> 
        <table> 
         <tr> 
          <th>Image</th> 
          <th>Caption</th> 
          <th>&nbsp;</th> 
          <th>Update File</th> 
         </tr> 
       </HeaderTemplate> 
       <ItemTemplate> 
        <tr> 
         <td> 
          <asp:Image Width="108px" Height="67px" runat="server" ID="imgDb" ImageUrl='<%# Eval("imageUrl") %>' /> 
         </td> 
         <td> 
          <asp:TextBox runat="server" style="margin-left: 5px; margin-right: 5px;" ID="txtCaption" Text='<%# Eval("caption") %>'></asp:TextBox> 
         </td> 
         <td> 
          <td><asp:FileUpload ID="fu" runat="server" /></td> 
        <td><asp:Button ID="btn" runat="server" Text="Update" CssClass="btn btn-info" CommandArgument='<%# Eval("id") %>' OnClick="btn_OnClick" /></td> 
          <td><asp:Button runat="server" ID="btnDelete" CssClass="btn btn-danger" CommandArgument='<%# Eval("id") %>' OnClick="btnDelete_OnClick" Text="Delete" /></td> 
          <td><asp:HiddenField ID="lblC" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "id") %>'></asp:HiddenField></td> 
         </td> 
        </tr> 

       </ItemTemplate> 
       <FooterTemplate> 
        </table> 
       </FooterTemplate> 
      </asp:Repeater> 

Я хочу знать, как я могу получить текстовое поле конкретно из ряда, где щелкнула кнопку обновления, является есть ли какая-нибудь логика, чтобы помочь мне получить нужную мне ценность?

Благодаря

ответ

3

Вы могли бы сделать это с обработкой Click события на кнопке, а затем получить его родительский контроль. Но я бы рекомендовал вместо этого использовать команду повторителя:

<asp:Repeater ID="rptImages" runat="server" 
       OnItemCommand="rptImages_ItemCommand"> 

Удалите обработчик с кнопки, но сохраните команду arg. Вы можете также задать имя команды, если есть и другие элементы управления отправки команд внутри ретранслятора:

<asp:Button runat="server" ID="btnDelete" CssClass="btn btn-danger" 
      CommandArgument='<%# Eval("id") %>' 
      Text="Delete" /> 

И в коде позади этого становится тривиальным:

protected void rptImages_ItemCommand(object sender, RepeaterCommandEventArgs e) 
{ 
    TextBox t = e.Item.FindControl("txtCaption") as TextBox; 
} 

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

  • Нет связанных вопросов^_^