从DataList到详细信息页面

时间:2012-03-07 13:35:03

标签: asp.net datalist commandargument

我的方案是:我有一些产品的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。怎么做?

2 个答案:

答案 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中。这是更轻的代码。