如果数据库值为Null,则隐藏GridView图像列
本文关键字:隐藏 GridView 图像 数据库 Null 如果 | 更新日期: 2023-09-27 17:57:32
我有一个Gridview,它的右侧有一个图像列。当用户选中复选框时,只应显示那些具有非Null图像的项目。
我已经看到,如果对应于行的数据库图像为空,那么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);
}
我建议您使用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;
}
}
https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcellformattingeventhandler(v=vs.110).aspx