我的方案是:我有一些产品的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。怎么做?
答案 0 :(得分:1)
我想我明白了。使用
OnCommand="ImageButton1_Click"
(而不是onclick)在图像按钮和
的标记中protected void ImageButton1_Click(object sender, CommandEventArgs e)
{
string productID = e.CommandArgument.ToString();
//..
}
答案 1 :(得分:1)
只需使用以下内容即可。
不要采取图像按钮只需采取图像控制并放在锚标记之间。
<a href="~/ProductDetails.aspx?productid=<%#Eval("ProductID")"><asp:Image ID="img" runat="server" ImageUrl="="~/Graphics/profile_button.png"> </a>
将此代码放入datalist中。这是更轻的代码。