1

asp.net 的新手,所以任何帮助都会很棒谢谢。

我有一个数据列表,其中包含产品名称、价格、图像和数据列表内的链接按钮,它还包含未显示的 ProductID。

您如何从 LinkBut​​ton 的 onClick 事件中获取当前产品 ID 谢谢。

我的数据列表

<asp:DataList ID="dlProduct" runat="server" DataKeyField="ProductID" RepeatDirection="Horizontal" RepeatColumns="4" CellPadding="10" CellSpacing="10" >
                    <ItemTemplate>                                 
                        <asp:Label ID="ProductNameLabel" runat="server" Text='<%# Eval("ProductName") %>' />   
                        <br />Price:
                        <asp:Label ID="PriceLabel" runat="server" Text='<%# "$" + Eval("Price") %>'  />
                        <br />            
                        <asp:Image ID="Image1" runat="server" CssClass="ImageStyles" ImageUrl='<%# "GetImage.ashx?Id=" + Eval("PID") %>' BackColor="White" BorderStyle="Ridge" BorderColor="WhiteSmoke" />
                        <br />
                        <asp:LinkButton ID="btnAddToCart" OnClick="btnAddToCart_Click" runat="server"><img src="images/AddToCart.png" onmouseover="this.src='images/AddToCartMouseOver.png';" onmouseout="this.src='images/AddToCart.png';" /></asp:LinkButton>
                    </ItemTemplate>
                </asp:DataList> 

我的代码背后

protected void btnAddToCart_Click(object sender, EventArgs e)
    {

        ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", "<script language='javascript'>alert('Product ID = "+ PID.Text + "');</script>", false);
    }
4

1 回答 1

2

使用 LinkBut​​ton 控件的 CommandArgument 属性。

像:

            <asp:LinkButton ID="btnAddToCart"
                CommandName="AddToCart" 
                CommandArgument='<%# Eval("ProductId") %>' 
                 OnCommand="btnAddToCart_Command" runat="server">

然后在btnAddToCart_Command你可以得到这样的命令参数。

    protected void btnAddToCart_Command(object sender, CommandEventArgs args)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", "<script language='javascript'>alert('Product ID = " + args.CommandArgument+ "');</script>", false);
    }

希望这可以帮助。

于 2012-12-02T03:02:25.560 回答