【问题标题】:compilation error: oncommand and CommandArgument in LinkButton编译错误:LinkBut​​ton 中的 oncommand 和 CommandArgument
【发布时间】:2014-11-13 17:14:05
【问题描述】:

我在我的 aspx 页面上的转发器中有一个 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”

【问题讨论】:

    标签: html asp.net linkbutton asprepeater asplinkbutton


    【解决方案1】:

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

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

    【讨论】:

    • 但我必须将作为参数的整数值发送到我的存储过程。
    • @Umm-e-Habiba,您需要将 commandarg.. 类型转换为 int 值,就像这样 - int.Parse(e.CommandArgument.ToString())
    • 错误:“System.EventArgs”不包含“CommandArgument”的定义,并且找不到接受“System.EventArgs”类型的第一个参数的扩展方法“CommandArgument”(您是否缺少使用指令还是程序集引用?)
    • @Umm-e-Habiba 如果您仔细查看我的帖子,我使用了CommandEventArgs e,它与EventArgs 不同,并且gridview 的OnCommand 事件具有此方法签名,即@ 987654327@ 。请仔细查看我的答案进行这些更改
    • 哦,是的,对不起,我应该仔细看一下。谢谢你的帮助,我很感激
    猜你喜欢
    • 1970-01-01
    • 2011-04-27
    • 2015-08-29
    • 2012-10-13
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2023-03-12
    • 2019-03-27
    相关资源
    最近更新 更多