asp.net 基于列ID显示特定图像

de90aj5v  于 2022-12-30  发布在  .NET
关注(0)|答案(1)|浏览(135)

我有一个asp.net的webform C#,它有一个datagridview,每个ID都有一个jpg图像文件,保存为ID字段的确切数字。
基本上我想做的是找到一种方法来显示基于选定行ID列的图像。有数百行,所以我如何才能让它基于ID选择图像?
例如,我有3列:

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

假设选中了Mike Blank,我想在页面顶部显示图像2946.jpg(因为这是他的ID号)。
注:所有图像均保存在同一文件夹中。

bhmjp9jg

bhmjp9jg1#

这段代码将在索引0处插入一个image列,获取存储在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到您的表单中,并在该行上单击(或者在您想要更新图像时),只需设置例如:

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

相关问题