2017-01-24 8 views
0

DataGridViewImageColumn не отображает все записи.
У меня есть datagridview, который должен отображать все записи.
Но этого не происходит!
Только те записи, которые имеют изображение в поле (скажем - «Фотография»).
И те записи, у которых нет изображения, не отображаются.
Почему это происходит?
То, что я еще не пробовал, все проваливается.
Попробуйте это:
DataGridView не отображает все записи

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

и это:

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

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

Вставить после InitializeComponent() и в private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e);

Добавить код по этой теме:
Connection Class есть этот метод:

 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); 
     } 
    } 

кода в форме, которые имеют 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 показывает строки с imageColumn, даже если изображение является недействительным, и если стиль ячейки устанавливается в нуль. Если вы отлаживали свой код, и вы уверены, что эти строки действительно находятся в источнике данных вашего DataGrid, тогда в вашем коде должна быть некоторая ошибка, или что-то в ваших свойствах datagridview установлено неправильно. Пожалуйста, напишите еще какой-нибудь код (runnable preferred), чтобы мы могли его проверить.

+0

Пожалуйста, посмотрите код. Я добавил больше кода для проверки –

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

  • Нет связанных вопросов^_^