У меня есть datagridview, который заполняется данными, возвращаемыми из запроса linq. Если запрос не возвращает результатов, я хочу отобразить сообщение. Есть ли способ проверить, не является ли datagridview пустым?
Привет
У меня есть datagridview, который заполняется данными, возвращаемыми из запроса linq. Если запрос не возвращает результатов, я хочу отобразить сообщение. Есть ли способ проверить, не является ли datagridview пустым?
Привет
Вы можете узнать, пуст ли он, проверив количество строк в DataGridView. Если myDataGridView.Rows.Count == 0, то ваш DataGridView пуст.
Метод DGV.Rows.Count проверки того, является ли DGV пустым, не работает, если для параметра AllowUserToAddRows установлено значение true.
Вы должны отключить AllowUserToAddRows = false затем проверить наличие пустых элементов следующим образом:
if (dataGridView1.Rows != null && dataGridView1.Rows.Count != 0)
//это дает строки count = 1
if (dataGridView1.Rows.Count != 0 && dataGridView1.Rows != null)
//Итак, я изменил код, как показано ниже, и он работает для меня
if(dataGridView1.Rows.Count>1 && dataGridView1.Rows != null)
На основе результатов Linq вы можете скрыть представление datagridview и показать другой элемент управления (например, литерал или что-то еще), отображающее сообщение. Если вам нужно какое-то всплывающее окно с сообщениями, вам нужно бросить туда какой-нибудь JavaScript.
Здесь много ответов содержит ссылку на Rows.Count. Обычно это не создает проблемы, и в большинстве случаев это будет излишним, чтобы делать то, что я собираюсь предложить.
Но по причинам, указанным в этом документе, может быть, не рекомендуется звонить Rows.Count, если DataGridView часто имеет много данных (>~ 5000 ячеек в профилировании памяти, которые я сделал для подтверждения этой статьи некоторое время назад).
Избегайте использования свойства
CountSystem.Windows.Forms.DataGridViewSelectedCellCollection, чтобы определить количество выбранных ячеек. Вместо этого используйтеDataGridView.GetCellCountи передать вDataGridViewElementStates.Selected. Аналогичным образом, используйтеDataGridViewRowCollection.GetRowCountиDataGridViewColumnCollection.GetColumnCountдля определения количество выбранных элементов, а не доступ к выбранной строке и коллекций столбцов.
В таких случаях вы можете использовать
myDataGridView1.Rows.GetRowCount(.) == 0
Если вы не имеете дело с быстрыми изменениями данных или огромным объемом данных (или, что еще хуже, с огромным количеством быстро меняющихся данных), просто используйте Rows.Count - это не так больно.
Вы можете проверить свойство Rows.Count в представлении datagridview.
Хотя вы также можете просмотреть свойство EmptyDataText DataGridView. Это может спасти вас, показывая сообщение.
Это должно сделать это:
dataGridView1.RowCount == 0