2014-11-13 35 views
1

我在我的aspx頁面上的中繼器中有一個LinkBut​​ton,我正在調用一個函數oncommand並通過CommandArgument傳遞一個參數,但它給我編譯錯誤。 我在這裏錯過了什麼?我該怎麼做才能解決這個問題?編譯錯誤:LinkBut​​ton中的oncommand和CommandArgument

ASPX代碼:

<asp:Repeater id="rptProduct" runat="server"> 
      <HeaderTemplate> 
       <table border="0" width="100%"> 
        <tr style="background-color:blue"> 
         <th align="center"><asp:Label ID="lblProduct" ForeColor="White" runat="server" Text="PRODUCT CATAGORIES"></asp:Label></th> 
        </tr> 
        <tr></tr> 
        <tr></tr> 
        <tr></tr> 
        <tr></tr> 
      </HeaderTemplate> 

      <ItemTemplate> 

        <tr style="background-color:cadetblue"> 
         <td align="center"><asp:LinkButton ID="lbType" ForeColor="White" Font-Underline="false" 
         OnCommand="LoadGrid" CommandArgument='<%# Eval("ItemTypeNumber") %>' 
         Font-Bold="true" runat="server" Text='<%# Eval("ItemTypeDescription").ToString() %>'></asp:LinkButton></td> 
        </tr> 
      </ItemTemplate> 

      <%--<SeparatorTemplate> 
        <tr> 
         <td colspan="6"><hr></td> 
        </tr> 
      </SeparatorTemplate>--%> 

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

aspx.cs頁:

protected void LoadGrid(int typeno) 
    { 
     DataSet ds = new DataSet(); 
     ds = new UsersBLL().GetItemDetails(typeno); 
     gvDetails.DataSource = ds; 
     gvDetails.DataBind(); 
    } 

錯誤: 編譯器錯誤消息: CS0123:否過載關於 'LoadGrid' 匹配委託「的System.Web。 UI.WebControls.CommandEventHandler'

回答

2

它必須與以下方法簽名匹配。

protected void LoadGrid(object sender, CommandEventArgs e) 
{ 
    // e.CommandArgument -- this will get you typeno 
} 
+0

但我必須發送一個整數值,這是一個參數到我的storedproceedure。 –

+0

@ Umm-e-Habiba,你需要對'commandarg..'進行類型轉換,像這樣 - 'int.Parse(e.CommandArgument.ToString())' –

+1

錯誤: 'System.EventArgs'不包含可以找到'CommandArgument'的定義並且沒有找到接受'System.EventArgs'類型的第一個參數的擴展方法'CommandArgument'(你是否缺少使用指令或程序集引用?) –

相關問題