1

我的情况是:我有一些产品的 DataList。我的 SqlDataSource 接受所有值,但我只显示图片、名称和价格。项目模板中可见的 ProductID 标签设置为 false。

我为每个产品添加了一个图像按钮,我想单击此按钮并转到每个产品的更具体的详细信息页面。我的解决方案是将 ProductID 传递到详细信息页面。但是,我错过了一些东西,无法弄清楚如何做到这一点。

我的按钮:

<asp:ImageButton ID="ImageButton1" runat="server" CommandArgument='<%# Eval("productID")%>'
                                ImageUrl="~/Graphics/profile_button.png" onclick="ImageButton1_Click" />

然后点击:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {

            string productID = ???????
            string url;

            url = "~/ProductDetails.aspx?productid=" + ProductID;
            Response.Redirect(url);
        }

如您所见,我不知道如何获取 CommandArgument。怎么做?

4

2 回答 2

1

我想我明白了。采用

OnCommand="ImageButton1_Click"

(而不是 onclick)在图像按钮的标记中和

protected void ImageButton1_Click(object sender, CommandEventArgs e)
{
     string productID = e.CommandArgument.ToString(); 
     //..
}
于 2012-03-07T13:39:33.203 回答
1

只需使用以下内容。

不拍摄图像按钮只需拍摄图像控制并放在锚标记之间。

<a href="~/ProductDetails.aspx?productid=<%#Eval("ProductID")"><asp:Image ID="img" runat="server" ImageUrl="="~/Graphics/profile_button.png"> </a>    

将此代码放在 datalist 中。这是更轻的代码。

于 2012-03-07T14:14:05.680 回答