1

所以我想做的是在单击按钮时从标签中提取文本。到目前为止,我得到的是以下内容:

    <asp:Label ID="lbl_carID" runat="server" Text="Label"></asp:Label>
    <asp:Label ID="lbl_ownerID" runat="server" Text="Label"></asp:Label>

    <asp:Button ID="btn_wishList" runat="server" Text="Add to wish list"  CssClass="btn" CommandArgument='<%= lbl_carID.Text.ToString() %>' OnCommand="btn_wishList_Command" />
    <asp:Button ID="btn_offer" runat="server" Text="Make Offer" CssClass="btn" CommandArgument='<%= lbl_ownerID.Text.ToString() %>' OnCommand="btn_offer_Command" />

我也尝试过不使用该ToString()方法,但它不起作用。也试过没有=after %。我是代码插入的新手,所以我想它真的很小,但我无法让它工作。有什么建议么 ?

编辑:这是后面的代码btn_offer_command。这两个命令在开始时是相同的,所以我发布了较短的代码。

protected void btn_offer_Command(object sender, CommandEventArgs e)
    {
        string id = (string)e.CommandArgument;
        Session["ownerToBeOffered"] = id;
        Response.Redirect("LoggedInFeatures/MakeOffer.aspx");
    }
4

2 回答 2

1

我相信您不能在带有 runat="server" 的属性中使用 <%= %>。

尝试传递CommandName并在您的处理程序中检查它。

例子

<asp:Label ID="lbl_carID" runat="server" Text="Labeddl1"></asp:Label>
<asp:Label ID="lbl_ownerID" runat="server" Text="Label1"></asp:Label>

<asp:Button CommandName="carID" CssClass="btn" ID="btn_wishList" OnCommand="btn_wishList_Command" runat="server" Text="Add to wish list" />
<asp:Button  CommandName="ownerID" CssClass="btn" ID="btn_offer" runat="server" Text="Make Offer" OnCommand="btn_offer_Command" />

并在您的代码中尝试以下内容...

    protected void btn_wishList_Command(object sender, CommandEventArgs e)
{
    if (e.CommandName == "carID")
    {
        //Do Something here
    }
}

protected void btn_offer_Command(object sender, CommandEventArgs e)
{
    if (e.CommandName == "ownerID")
    {
        //Do Something here
    }
}
于 2015-05-06T20:35:04.237 回答
0

把它放在你的代码中的某个地方

[ExpressionPrefix("Code")]
public class CodeExpressionBuilder : ExpressionBuilder
{
    public override CodeExpression GetCodeExpression(BoundPropertyEntry entry,
       object parsedData, ExpressionBuilderContext context)
    {
        return new CodeSnippetExpression(entry.Expression);
    }
}

在编译部分下的 web.config 中注册

<compilation debug="true" targetFramework="4.5.1" >
  <expressionBuilders>
    <add expressionPrefix="Code" type="WebApplication2.CodeExpressionBuilder"/>
  </expressionBuilders>
</compilation>

现在,您将能够按照以下构造预期的那样评估此时的任何代码

 <asp:Button ID="btn_offer" runat="server" Text="Make Offer" CssClass="btn" CommandArgument='<%$ Code: lbl_ownerID.Text %>' OnCommand="btn_offer_Command" />
于 2015-05-06T20:22:28.410 回答