2

我在我的 aspx 页面上的转发器中有一个 LinkBut​​ton,我正在调用一个函数 oncommand 并通过 CommandArgument 传递一个参数,但它给了我编译错误。我在这里想念什么?我应该怎么做才能解决这个问题?

asp代码:

    <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”

4

1 回答 1

3

它必须与以下方法签名匹配。

protected void LoadGrid(object sender, CommandEventArgs e)
{
  // e.CommandArgument -- this will get you typeno 
}
于 2014-11-13T17:19:17.467 回答