2017-02-08 11 views
0

私はasp.net webform C#とdatagridviewを持っています。 IDフィールドの正確な番号として保存されているすべてのID番号のjpgイメージファイルがあります。
基本的には、選択した行のID列に基づいてイメージを表示する方法があります。何百行もあるので、IDに基づいて画像を選択するにはどうしたらいいですか?カラムIDに基づいて特定の画像を表示

例えば、私は3列があります。

ID | FirstName | LastName | 
---------------------------- 
2324| John  | Doe  | 
2034| Jane  | Doe  | 
2946| Mike  | Blank | 

はのは、マイクのブランクが選択されているとしましょう。私はページの上部に画像2946.jpgを表示したいと思います。

注:すべての画像は同じフォルダに保存されます。

+0

DataGridViewの横に画像を表示しますか?例えばPictureBoxでは?別の行がクリックされたときに画像を更新しますか?それにもかかわらず、C. Hellingの答えは、あなたの問題を解決するために必要なすべての情報を提供すべきです。 – sbecker

答えて

1

このコードは、インデックス0に画像列を挿入し、C:\Images\[userID].jpgに格納された画像を取得し、セルクリックでそれらをロードします。一般的なアイデアは変わりませんが、DataGridViewImageColumnを追加する必要があります。その場合は、いつでも好きなときに入力することができます。

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.usersTableAdapter.Fill(this.testDBDataSet.Users); 
    DataGridViewImageColumn imageCol = new DataGridViewImageColumn(); 
    dataGridView1.Columns.Insert(0, imageCol); 
    dataGridView1.Columns[0].Name = "Image"; 
} 

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    int userID = (int)dataGridView1.Rows[e.RowIndex].Cells[1].Value; 
    Bitmap img = new Bitmap(@"C:\Images\" + userID + ".jpg");  
    dataGridView1.Rows[e.RowIndex].Cells[0].Value = img; 
} 

それはそうのような出力生成:フォームで、あなたのフォームにPictureBoxを作成する必要があり、行をクリック(またはたびにどこか他の画像を追加するには

WinForm with Image column

をあなたは画像を更新したい)、単に設定する

int userID = (int)dataGridView1.Rows[e.RowIndex].Cells[1].Value; 
pictureBox1.ImageLocation = @"C:\Images\" + userID + ".jpg"; 
+0

多分私は不明だった。イメージは、ID列の名前を持つフォルダc¥imagesにすでに保存されています。 Webformでは、ユーザーがデータグリッド内の特定の行を選択した場合、そのID列に関連付けられたイメージを表示する必要があります。それは理にかなっていますか? –

+0

"ID"セル自体をイメージで置き換えることは、特にデータソースにバインドされた後に列の種類を変更できないため、特に困難です。画像を挿入した 'DataGridViewImageColumn'を作成します。私はセルのクリックに画像を挿入しますが、あなたは好きだが、あなたはその列を入力します。他にご質問がありましたらお知らせください。 –

+0

これは私が行っていることですが、画像をgridviewの列に表示したくありません。私はそれをページの上部に表示したい。したがって、行が選択されるたびに、関連付けられたイメージがページの上に表示されます。 –

関連する問題