我有一个Gridview,右侧有一个图像列。当用户选中一个复选框时,只显示那些带有非空图像的项目。
我已经看到Gridview使用默认的Image,如果该行对应的数据库图像是空的。我是否需要为此编写一个新的存储过程,或者有更好的方法。
我目前已经实现了这个
try
{
if (checkBox1.Checked == true)
{
dgvGetData.Columns["image"].Visible = true;
foreach (DataGridViewRow row in dgvGetData.Rows)
{
Console.WriteLine("LOOP");
if (row.Cells[16].Value == null)
{
Console.WriteLine("######################################> NULL");
row.Visible = false;
}
else
{
Console.WriteLine("######################################> NOT NULL");
}
}
}
else
{
dgvGetData.Columns["image"].Visible = false;
}
}
catch (Exception error)
{
MessageBox.Show(error.Message);
}
答案 0 :(得分:0)
我建议您使用CellFormatting
事件处理程序。您可以编写几行代码来确定您是否在正确的列上,然后让它显示您想要的任何内容。
以下是一个部分示例:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.Value == null && dataGridView1.Columns[e.ColumnIndex].Name == "Image")
{
dataGridView1.Rows[e.RowIndex].Visible = false;
}
}