2016-07-26 10 views
0

Sqlデータベースにコレクション画像パスを保存し、asp.netページに表示しました。そして私は次のコードを使ってユーザーがクリックした画像のパスを取得しました。 私の問題は、クリックすると最初の画像のパスを返します。 どうすれば解決できますか?asp.netのOnClickで画像のパスを取得するには?

Default.aspxの

<asp:ImageButton ID="ImageButton1" runat="server" Height="200" Width="125" ImageUrl='<%#Eval ("img") %>' OnClick="ImageButton1_Click" /> 

Default.cs

   if (dt.Rows.Count > 0) 
      { 
       ViewState["img"] = dt.Rows[0]["img"].ToString(); 
      } 
+0

イメージパスまたは最初のイメージが必要ですか? – user3151766

+0

ユーザーがクリックした各画像の画像パスが必要です。 例: ユーザーが最初の画像をクリックしている間に最初の画像のパスが必要です。 ユーザーが10番目の画像をクリックしている間に10番目の画像のパスが必要です。 – Sawa

答えて

0

あなたは関連する行を取得するためにフィルタリングする必要があります。 Linqをオブジェクトに使用し、フィールドを使用してフィールドを選択してフィルタリングすることができます。

例 - (カラムIDで仮定するフィルタ):

dt.AsEnumerable().Where(r=>r.Field<int>("id")==4).Select(r => r.Field<string>("img")); 
+0

しかし、 '(r => r.Field (" id ")== 4)'ユーザーのテンションによって変化します – Sawa

+0

これは一例ですが、データテーブルのキーは何ですか? –

+0

OK。私は知っていた。しかし、 '4'は動的であり、ユーザの意図によって変更されます。 – Sawa

0

あなただけ

dt.Rows [0] [「IMG」]の値を取得するようにあなたの詳細ごとに見えるよう。ToStringメソッド()それはあなただけが必要 常にあなたのイメージの最初のパスを返しています正確な解決策のためにforループを使用する。

+0

しかし、ループは正確な解決策ではありません。これに加えて、ユーザーが選択した画像のパスを取得する必要があります。 – Sawa

+0

ViewState ["file1"] = Server.MapPath( "〜/ FolderName /" + ImageButtonID.FileName);これを使って – user2732906