如果数据库值为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);
}

如果数据库值为Null,则隐藏GridView图像列

我建议您使用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