#c# #winforms #datagridview
#c# #winforms — формы #просмотр сетки данных #winforms #datagridview
Вопрос:
Я пытаюсь привязать список элементов к a DataGridView
. Проблема в том, что он показывает все столбцы в списке, и я хочу показать только 2 из них, а остальные оставить (возможно, чтобы сделать их невидимыми), потому что они содержат некоторые идентификаторы, важные для логики. Это то, что у меня есть до сих пор:
private void BindFormData(object sender, EventArgs e)
{
//returns a list of items
var extraParamters = context.getExtraParameters(scheduleId, exportId);
if (extraParamters.Count > 0)
{
dataGridView1.DataSource = extraParamters;
}
}
Список элементов выглядит следующим образом:
Id | accId | Name | Value | custId |
1 150 Name 15 10
2 200 Name 25 10
И так далее..
Как мне показать только Name
Value
столбцы и? Моя идея заключается в том, что я сделаю их доступными для редактирования в DataGridView
, и что я также смогу вставлять новые записи.
Ответ №1:
Пусть ваш просмотр сетки автоматически генерирует столбцы, а затем просто удаляет их.
- вы также можете создать все это в коде, хотя это может быть проще для вас, пока вы не привыкнете к этому.
Итак, что-то вроде этого:
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = extraParamters;
dataGridView1.Columns.Remove("accId");
dataGridView1.Columns.Remove("custId");
dataGridView1.Columns["Id"].Visible = false;
Обратите внимание, что я не удалял id
столбец — просто скрыл его. Он понадобится вам для обновления в будущем.
Или просто скройте те, которые вам не нужны
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = extraParamters;
dataGridView1.Columns["accId"].Visible = false;
dataGridView1.Columns["custId"].Visible = false;
dataGridView1.Columns["Id"].Visible = false;
Комментарии:
1. я использую winforms, и это для asp.net .
2. Извините — только что заметил. Повторите это сейчас
3. Спасибо, он должен работать, но когда он попадает в то место, где я задаю имя столбца (независимо от того, скрываю я его или удаляю), он напрямую загружает форму, как будто не может найти имя столбца в списке. Например. здесь
dataGridView1.Columns["accId"].Visible = false;
и затем DataGridView пуст.4. установите точку останова и проверьте свой источник данных, чтобы убедиться, что имена полностью совпадают. Вы также можете ссылаться на столбец по индексу (основанному на нуле) — так
dataGridView1.Columns[0].Visible = false;
вы скроете первый столбец.5. Также дважды проверьте свой проект, чтобы убедиться, что у вас нет ничего другого, переопределяющего этот код, который может быть запущен после вашего. Проверьте представление дизайна, чтобы убедиться, что оно не ссылается ни на что другое.e