2012-06-27 1 views
1

У меня есть два выпадающих списка. Секад будет меняться в соответствии с выбранным значением в первом.Как я могу заполнить выпадающий список с результатом запроса linq динамически?

Это то, что я пытаюсь, но не работает.

protected void ddTerritory_SelectedIndexChanged (object sender, EventArgs e) 
{ 
    NorthwindDataContext bd = new NorthwindDataContext(); 

    var selectedTerritory = 
     (from t in bd.EmployeeTerritories 
     where t.TerritoryID == this.ddTerritory.SelectedValue 
     select t).ToList(); 

    for (int i = 0; i < selectedTerritory .Count; i++) 
    { 
     this.ddTerrSelc.Items.Insert(i, 
      new ListItem(territorioSeleccionado[0].ToString(), i.ToString())); 
    } 
} 

Я вижу несколько примеров, но все они были с использованием DataSet в качестве источника данных для выпадающего списка, и, как вы можете видеть, я использую LINQ к SQL, так что я думаю, что надо быть способ сделать это без набора данных

+1

Что не работает? Вы получаете сообщение об ошибке? – Schaliasos

ответ

1

Вам не нужно вставить результат, установленный вручную, вы можете сделать это вместо того, чтобы:

var selectedTerritory = 
      (from t in bd.EmployeeTerritories 
      where t.TerritoryID == this.ddTerritory.SelectedValue 
      select t).ToList(); 

this.ddTerrSelc.DataTextField = "Name"; 
this.ddTerrSelc.DataValueField = "ID"; 
this.ddTerrSelc.ItemsSource = selectedTerritory; 
+0

Свойства DisplayName, ValueMember и ItemsSource дают мне ошибку. Ошибка говорит, что в раскрывающемся списке нет этих методов. –

+0

@ Aikanáro. Если это winforms, этот 'ddTerrSelc' должен иметь тип [' ComboBox'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.aspx). Но если это ASP.Net и 'addTerrSelc' типа [' DropDownList'] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.dropdownlist.aspx), тогда используйте следующие свойства вместо этого в моем ответе: 'addTerrSel.DataValueField = 'Id', addTerrSel.DataTextField = 'Name''. Извините за это, см. Мое редактирование. –

Смежные вопросы