0

.NET の ASP.NET リピーターがありImageButtonます。私ImageButtonOnCommandイベントがあります。

私の目標:をクリックするImageButtonと、選択した行の色が変わります。

これは私の ASP.NET コードからの抜粋です。誰でも私を助けることができますか?

<asp:Repeater ID="RepeaterID" runat="server" OnItemCommand="rpt_ItemCommand">
  <HeaderTemplate>
    <table cellpadding="0" cellspacing="0" id="table1">
      <thead>
        <tr>
          <th>
            <asp:Label ID="lbl_refCode" runat="server"></asp:Label>
          </th>
          <th style="width: 25px"></th>
        </tr>
      </thead>
    </table>
  </HeaderTemplate>
  <ItemTemplate>
    <tr id="row" runat="server">
      <td  style="width: 50px;">
        <asp:Label ID="Label2" runat="server" Text='<%# Eval("RefCode") %>'</asp:Label>
      </td>
      <td style="width: 25px;">
        <asp:ImageButton ImageUrl="Icons/edit.png"  CommandArgument='<%# Eval("ID") %>'  CommandName="Edit" ID="ImgEdit" OnCommand="Manage" runat="server">
        </asp:ImageButton>
      </td>
    </tr>
  </ItemTemplate>
  <AlternatingItemTemplate>
    <tr id="row" runat="server">
      <td  style="width: 50px;">
        <asp:Label ID="Label2" runat="server" Text='<%# Eval("RefCode") %>' </asp:Label>
      </td>
      <td  style="width: 25px;">
        <asp:ImageButton ImageUrl="Icons/edit.png"  CommandArgument='<%# Eval("ID") %>'  CommandName="Edit" ID="ImgEdit" OnCommand="Manage" runat="server">
       </asp:ImageButton>
     </td>
    </tr>
  </AlternatingItemTemplate>
  <FooterTemplate>
  </Table>
  </FooterTemplate>
</asp:Repeater>
4

1 に答える 1

1

LinkBut​​ton の OnCommand イベントの代わりに、Repeater の OnItemCommand イベントを使用してみてください。RepeaterCommandEventArgs パラメーターを使用すると、LinkBut​​ton だけでなくアイテム全体にアクセスでき、テーブル行の背景色を設定できます。

<asp:Repeater ID="RepeaterID" runat="server" OnItemCommand="rpt_ItemCommand">
    <HeaderTemplate>
        <table  cellpadding="0" cellspacing="0" id="table1">
            <thead>
                <tr>
                    <th>
                        <asp:Label ID="lbl_refCode" runat="server" </asp:Label>

                    </th>
                   <th style="width: 25px"></th>

                </tr>
            </thead>
    </HeaderTemplate>                                     
    <ItemTemplate>
        <tr id="row" runat="server">
            <td  style="width: 50px;">
                <asp:Label ID="Label2" runat="server" Text='<%# Eval("RefCode") %>' </asp:Label>                                            
            </td>                                            
            <td  style="width: 25px;">
                <asp:ImageButton ImageUrl="Icons/edit.png"  CommandArgument='<%# Eval("ID") %>'  CommandName="Edit" ID="ImgEdit" runat="server">                                                      
                </asp:ImageButton>

            </td>
        </tr>
    </ItemTemplate>
    <AlternatingItemTemplate>
        <tr id="row" runat="server">
            <td  style="width: 50px;">
                <asp:Label ID="Label2" runat="server" Text='<%# Eval("RefCode") %>' </asp:Label>                                            
            </td>                                            
            <td  style="width: 25px;">
                <asp:ImageButton ImageUrl="Icons/edit.png"  CommandArgument='<%# Eval("ID") %>'  CommandName="Edit" ID="ImgEdit" runat="server">                                                      
                </asp:ImageButton>

            </td>
        </tr>
    </AlternatingItemTemplate>

    <FooterTemplate>
        </Table>
    </FooterTemplate>
</asp:Repeater>

protected void rpt_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName.Equals("Edit"))
    {
        HtmlTableRow newRow = e.Item.FindControl("row") as HtmlTableRow;
        if (newRow != null)
            newRow.BgColor = "#CCCCCC";
    }
}

ItemTemplate では、表の行に ID があるため、ItemCommand 引数で見つけることができることに注意してください。

于 2013-10-03T19:47:59.720 に答える