#c_sharp #winforms
Всем привет. Как правильно настроить и работать с DataGridView, если структура datarow и грида различны? На данный момент заполняю грид методом Add(). Приведу пример кода: dgv.Rows.Add(sName, sCount); Данные для добавления берутся из datarow []. Подскажите, пожалуйста, можно ли заполнить грид быстрее?
Ответы
Ответ 1
В комменатриях промелькнула информация, что загрузка из DataSource не используется из-за того, что стуктура результирующего запроса отличается от структуры DataGridViev. Это не проблема, можно ручками управлять привязываемыми колонками, выбирая, какую колонку из источника отобразить на конкретной колонке DataGridView. dataGridView.AutoGenerateColumns = false;//Колонки генерироваться не будут=> где-то потребуется их сгенерировать перед привязкой dataGridView.DataSource = result; dataGridView.Columns["GridColumnName"].DataPropertyName = "ResultColumnName"; Данные, которые не были привязаны не теряются. Т.е, получив Row из DataGridView вы ее можете привести к нужному типу и обратится к полям, которые не были отражены.Ответ 2
В идеале ДатаГрид или ДатаГридВью валью не должны заполнятся в принципе. В идеале нужно переключить в режим виртуального ( VirtualMode = true ) и подгружать данные напрямую с любого соурса данных. Будь то датасет, аррей стрингов, лист кастомных обьектов иль что еще. То есть в dataGridView1_NewRowNeeded пишешь каким именно макаром нужно доставать и обрабатывать данные. И все ли нужно вставлять из реально имеющихся данных. В том числе можно подгружать данные напрямую с SQL.
Комментариев нет:
Отправить комментарий