2012-03-07 179 views
1

我的场景是:我有一些产品的DataList。我的SqlDataSource获取所有的值,但我只显示图片,名称和价格。项目模板中可见的ProductID标签设置为false。从DataList到详细信息页面

我已经为每个产品添加了一个图像按钮,我想单击此按钮并转到每个产品的更具体的详细信息页面。我的解决方案是将ProductID传递给详细信息页面。但是,我错过了一些东西,不知道如何去做。

我的按钮:

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

随后的onclick:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 
     { 

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

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

正如你看到的,我不知道怎么去CommandArgument。怎么做?

回答

1

我想我明白了。使用

OnCommand="ImageButton1_Click" 
图像按钮的标记

(代替的onclick)和

protected void ImageButton1_Click(object sender, CommandEventArgs e) 
{ 
    string productID = e.CommandArgument.ToString(); 
    //.. 
} 
+0

试过了,只是发布之后但: 错误\t \t 1“System.Web.UI.ImageClickEventArgs”不包含关于“CommandArgument”和没有扩展方法的定义“CommandArgument”接受类型的第一个参数“系统.Web.UI.ImageClickEventArgs'可以找到(你是否缺少使用指令或程序集引用?) – dargod 2012-03-07 13:42:21

+0

好吧,更新.... – AGuyCalledGerald 2012-03-07 13:53:15

+0

Aaa是:)工作得很好,谢谢!我也在搜索ImageButton中的OnClick和OnCommand,发现了一些问题。再次感谢。 – dargod 2012-03-07 13:55:43

1

只需使用以下。

不要拿图像按钮只是把图像控制,并把锚标签之间。

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

将此代码放在datalist中。它代码较轻。

相关问题