2016-07-19 21 views
0

右側にイメージ列を持つGridviewがあります。ユーザーがチェックボックスをオンにすると、Null Image以外の項目のみが表示されます。データベース値がNULLの場合、GridViewイメージの列を非表示にします。

Gridviewは、行に対応するデータベースイメージが空の場合、デフォルトのImageを使用していることがわかりました。このために新しいストアドプロシージャを作成する必要があります。

私は現在、私はあなたがCellFormattingイベントハンドラを使用することをお勧めします。この

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

を実装しています。数行のコードを書いて、正しい列にいるかどうかを判断し、必要なものを表示させることができます。ここ

は部分的例である:

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

関連する問題