2012-03-07 31 views
1

私のシナリオは次のとおりです。DataListにはいくつかの製品があります。私のSqlDataSourceはすべての値を取りますが、画像、名前、価格のみを表示します。アイテムテンプレートに表示されるProductIDラベルはfalseに設定されます。DataListから詳細ページへ

各製品に画像ボタンを追加しました。このボタンをクリックして、各製品の詳細ページに移動します。私の解決策は、ProductIDを詳細ページに渡すことです。しかし、私は何かを見逃しているし、それを行う方法を理解することはできません。

マイボタン:次にonclickの

<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を取得する方法を知らない見ることができるように。どうやってするか?

答えて

1

私はそれを持っていると思います。ただ、以下を使用した画像のボタンのマークアップで

OnCommand="ImageButton1_Click" 

(代わりのonclickの)を使用して

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

はちょうど掲示した後、試みたが: エラー「System.Web.UI.ImageClickEventArgs」「CommandArgument」は、タイプの最初の引数を受け入れる「CommandArgument」となし拡張メソッドの定義が含まれていません「システム.Web.UI.ImageClickEventArgs 'が見つかりました(使用するディレクティブまたはアセンブリ参照がありませんか?) – dargod

+0

ok、updated .... – AGuyCalledGerald

+0

Aaa yes :)うまく働いて、感謝!私も検索していて、ImageButtonのOnClickとOnCommandの間に問題があるトピックを見つけました。再度、感謝します。 – dargod

1

アンカータグの間に画像制御を入れて画像ボタンを押さないでください。

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

このコードをデータリストに入れます。より軽いコードです。

関連する問題