根据列ID显示特定图像

时间:2017-02-08 22:38:37

标签: c# asp.net image datagridview

我有一个带有datagridview的asp.net webform C#。每个ID#都有一个jpg图像文件,保存为ID字段的确切编号 基本上我想要做的是找到一种基于所选行ID列显示图像的方法。有几百行,那么如何根据ID选择图像?

例如,我有3列:

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

让我们说Mike Blank被选中了。我想在页面顶部显示图像2946.jpg(因为那是他的ID#是什么)。

注意:所有图像都保存在同一文件夹中。

1 个答案:

答案 0 :(得分:1)

此代码将在索引0处插入图像列,抓取存储在C:\Images\[userID].jpg中的图像,并在单击单击时加载它们。一般的想法保持不变,您需要添加DataGridViewImageColumn,然后您可以随时填充或随时填写。{1}}。

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;
}

它产生如下输出:

WinForm with Image column

要在表单中的其他位置添加图片,您需要为表单创建PictureBox,并在行上单击(或每当您想要更新图像时),只需设置例如。

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