2016-07-19 4 views
0

У меня есть Gridview, у которого есть столбец изображения справа. Когда пользователь проверяет флажок, должны отображаться только те элементы с изображением, отличным от Null.Скрыть GridView Image Column, если значение базы данных равно Null

Я видел, что Gridview использует изображение по умолчанию, если изображение базы данных, соответствующее строке, пусто. Мне нужно написать новую хранимую процедуру для этого или есть лучший способ сделать это.

В настоящее время я реализовал это

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

Я рекомендовал бы использовать обработчик 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

Смежные вопросы