2012-10-27 54 views
1

我綁定與C#特性Repeater控件如下如何在Repeater中的項目單擊時獲取特定的列值?

<asp:Repeater ID="repeaterInvoicesPaid" OnItemCommand="ClientNameClicked" runat="server"> 
       <HeaderTemplate> 
      <table id="PaidInvoicesTable" cellspacing="0" cellpadding="0" style="width: 100%; font-size: 11px; border-right-width: 0; border-bottom-width: 0;" 
      class="dxgvControl grid dxgvTable"> 
        <thead> 
         <tr> 
          <td style="width: 150px;" class="dxgvHeader">Invoice # 
          </td> 
          <td style="width: 150px;" class="dxgvHeader">Client Name 
          </td> 


         </tr> 
        </thead> 
       <tbody> 
      </HeaderTemplate> 

      <ItemTemplate> 
       <tr class="dxgvDataRow"> 
        <td class="dxgv"> 
        <asp:Label ID="lblInvoiceID" Text='<%#Eval("InvoiceID")%>' runat="server" /> 
        </td> 
        <td class="dxgv"> 
        <asp:LinkButton ID="btnClientName" CommandName="Click" Text='<%#Eval("customer.FirstName")%>' runat="server"/> 

        </td> 


         <td class="dxgv"> 

      <asp:Label ID="lblCustomerid" Visible="false" Text=' <%#Eval("Customerid") %>' runat="server" /> 

      </td> 
       </tr> 
      </ItemTemplate> 

    <FooterTemplate> 

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

現在我想,從相應的行客戶ID(假設爲一個變量),當用戶點擊以特定行。在C#ClientNameClicked事件CLIENTNAME的LinkBut​​ton的我怎麼才能得到它 ?

C#代碼:

protected void ClientNameClicked(object sender , RepeaterCommandEventArgs e) 
    { 
     switch(e.CommandName) 
     { 
      case "Click": 
      break; 
    } 
    } 

請幫助。 在此先感謝。

回答

1

你的鏈接按鈕看起來應該像

在中繼甚至ItemCommand使用下面的代碼:

<asp:LinkButton ID="btnClientName" CommandName="Click" CommandArgument='<%#Eval("Id")' Text='<%#Eval("customer.FirstName")%>' runat="server"/> 

protected void ItemCommand(object sender , RepeaterCommandEventArgs e) 
{ 
    switch(e.CommandName) 
    { 
     case "Click": 
      var i = Convert.ToInt32(e.CommandArgument); // You can get the Id 
     break; 
    } 
} 
+0

謝謝,這是爲我工作有了一些變化。 –

相關問題