2017-01-24 5 views
0

DataGridViewImageColumnはすべてのレコードを表示しません。
私はすべてのレコードを表示するdatagridviewを持っています。
しかし、これは起こっていません!
フィールドに画像があるレコード(「写真」など)のみ。
イメージを持たないレコードは表示されません。
なぜこれが起こっていますか?
私は他のすべてを試していないことは失敗します。このテーマについてのコードを追加しますInitializeComponent()DataGridViewはすべてのレコードを表示しません

var column1 = new DataGridViewImageColumn(); 
    column1.DefaultCellStyle.NullValue = null; 
    column1.CellTemplate = new DataGridViewEmptyImageCell(); 

    private class DataGridViewEmptyImageCell : DataGridViewImageCell 
    { 
     public override object DefaultNewRowValue { get { return null; } } 
    } 

挿入しprivate void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e);

中:
クラスの接続は、このメソッドを持っている:

 public void FillDataGridView(DataGridView dataGridView, string query="") 
    { 
     try 
     { 
      command = new MySqlCommand(query, connection); //Создаём запрос для поиска 
      adapter = new MySqlDataAdapter(command); //Выполняем команду 
      //Для отображения в таблице 
      DataTable table = new DataTable(); //Создаём таблицу 
      adapter.Fill(table); //Вставляем данные при выполнении команды в таблицу 
      dataGridView.DataSource = table; //подключаем заполненную таблицу и отображаем 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

  Load += delegate 
     { 
      foreach (var column in dataGridView1.Columns) 
      { 
       if (column is DataGridViewImageColumn) 
        (column as DataGridViewImageColumn).DefaultCellStyle.NullValue = null; 
      } 
     }; 

と、この:
これを試してみてください DataGridViewのを持っているフォームで

コード:

 private void TestFormTwo_Load(object sender, EventArgs e) 
    { 
     FillDataGridView(""); 
    } 

    public void FillDataGridView(string valueToSearch) 
    { 
     //получаем запрос на отображение данных с поиском 
     string nameTable = "info"; 
     string[] nameFieldsAll = {"id_info", "full_name", "passport_id", "age", "address", "phone", "photo"}; 
     string[] nameFieldsAS = {"ИД","ФИО","Серия и номер паспорта","Возраст","Адрес","Телефон","Фото"}; 
     string[] numericFields = {"id_info","age"}; 
     string query = connection.GetQueryShowSearch(nameTable, nameFieldsAll, nameFieldsAS, numericFields, valueToSearch); 
     //заполняем данные таблицы на основе запроса 
     connection.FillDataGridView(dataGridView1, query); 
     settings.GetSettingDisplayTable(dataGridView1, 100); 
     settings.GetViewImageInCellTable(dataGridView1, 6); 
    } 

答えて

0

私はDataGridViewのを確認し、画像がnullとセルスタイルがnullに設定されている場合であっても、imageColumnを持つ行を示しています。 コードをデバッグしていて、それらの行が実際にdataGridのデータソースにあることを確認している場合は、コードにバグがあるか、datagridviewプロパティのバグが正しく設定されている必要があります。 私たちがチェックアウトできるように、コードをいくつか追加してください(実行可能にすることをお勧めします)。

+0

コードをご覧ください。それをチェックするためのコードが追加されました –

関連する問題