2013-05-09 3 views
0
привязки данных

У меня есть два списка флажок в ASP.NET,Хотя CheckBoxList

первый список содержит имена всех фруктов и второй список содержит только несколько фруктовых имен.

список становятся заполняются из базы данных с помощью SqlDataSource

теперь мне нужно сделать что-то, так что первый список всех фруктов должны быть только фрукты, которые не в списке 2

Вот код, сэр,

private void AllFruitsNames() 
{ 
    using (SqlDataSource ds = new SqlDataSource(ConnectionString(), "SELECT FruitName FROM FruitTable")) 
    { 
      CheckBoxList1.DataSource = ds; 
      CheckBoxList1.DataTextField = "FruitName"; 
      CheckBoxList1.DataBind(); 
    } 
} 

private void PopulateOnlyFewFruitsNames(int crateID) 
{ 
    CheckBoxList2.Items.Clear(); 

    using (SqlDataSource ds = new SqlDataSource(CS(), "SELECT FruitName FROM FruitTable Where crateID ='" + crateID + "'")) 
    { 
      CheckBoxList2.DataSource = ds; 
      CheckBoxList2.DataTextField = "FruitName"; 
      CheckBoxList2.DataBind(); 
    } 
} 

Как сбалансировать плоды, как если плод находится в 2-ом списке CheckBox, то он должен быть удален из CheckBoxList 1

+0

Откуда берется crateID? – magnattic

+0

из выпадающего списка, сэр, событие с измененным индексом, которое я использую – Change

ответ

0

Кажется, что у вас есть идентификаторы тех фруктов, которые вы хотите быть во 2-м списке.

Просто исключить все фрукты с этими идентификаторами из первого запроса:

"SELECT FruitName FROM FruitTable WHERE crateID NOT IN(" + String.Joing(",",crateIDList) + ")" 

BTW: Вы действительно не должны строить SQL запросов таким образом. Они уязвимы для SQL-инъекций. Вместо этого используйте параметризованные запросы. Вот статья на эту тему: Using parameterized queries with the SQLDataSource