Как добавить пустое или пользовательское значение в связанный выпадающий список? - PullRequest
3 голосов
/ 20 сентября 2009

Я использую System.Windows.Forms.Combobox привязаны к таблице категорий в качестве критерия поиска. Мне нужно иметь значение «Все» или пустую строку, которая будет выбрана, когда пользователь не хочет использовать этот критерий Поскольку комбо привязано, при каждом нажатии на него добавляется значение combo1.Text = «All». Очевидно, я не могу добавить категорию «Все» в базу данных. Каков наилучший способ сделать это?

Ответы [ 6 ]

5 голосов
/ 14 декабря 2012
  1. Если вы не хотите добавлять элемент «Все» в свой источник данных, вы можете сделать следующее:

Фрагмент кода

comboBox1.Text = "All";

Устанавливает текст, отображаемый в comboBox, на присвоенное значение, но без изменения элементов в comboBox и связанном источнике данных.

  1. Вы также можете добавить «Все» в свой источник данных. Но вы должны сделать это следующим образом:

Фрагмент кода

private void button1_Click(object sender, EventArgs e)

{

DataRow dataRow = dataTable.NewRow();

dataRow["ItemId"] = "All";

dataTable.Rows.InsertAt(dataRow, 0);

comboBox1.SelectedIndex = 0;

}

Самый простой способ - вставить строку в ваши ds.Tables [0], то есть

  ds = StockDAL.BindItemId();

  DataRow dataRow = ds.Tables[0].NewRow();

  dataRow["ItemId"] = "All";

  ds.Tables[0].Rows.InsertAt(dataRow, 0);

  comboBox1.DataSource = ds.Tables[0];
  comboBox1.DisplayMember = "ItemId";
  comboBox1.ValueMember = "ItemId";
  comboBox1.selectedIndex=0;

надеюсь, что это решит вашу проблему ..

1 голос
/ 20 сентября 2009

Либо вручную добавьте запись All в связанный набор данных после загрузки других значений, либо отмените привязку комбинированного списка и вместо этого выполните итерацию по данным, чтобы заполнить их. Это просто комбинация поиска, поэтому вам не нужны все преимущества привязки.

1 голос
/ 20 сентября 2009

Вы должны добавить еще один элемент:

ComboBox1.Items.Insert(0,"All");
0 голосов
/ 02 апреля 2013

вы можете попробовать это

ComboBox1.Items.Insert(0,"All");

при вставке в таблицу вы просто проверяете выбранный индекс ComboBox1 т.е.

if(ComboBox1.SelectedIndex>0)
{
//do the insert code here
}
else
{
//dont do anything
}

это будет работать нормально ...

0 голосов
/ 20 сентября 2009

Я всегда «вручную» добавляю элемент в источник данных перед привязкой данных. Это позволяет избежать «искусственных» данных в запросе вашего источника данных, поэтому, если вы используете запрос для чего-то другого, кроме выпадающего списка, вы получите только реальные данные.

0 голосов
/ 20 сентября 2009
  1. Если вы используете sql server, вы можете добавить дополнительное значение к команде выбора для опции All
  2. Или вы можете добавить опцию Все, используя comboBox1.Items.Insert (0, «Все»), чтобы добавить новый элемент в качестве нулевого индекса. после привязки контроля

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...