2015-03-19 2 views
0

Мне нужно привязать Asp.net DropDownList внутри ItemTemplate ListView. Я использую LINQ для запроса данных с использованием контекста дб LINQ следующим образом:Asp.net DropDownList не связывается внутри ListView

.cs

protected void ListView_AllTickets_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    DataClassesDataContext db = new DataClassesDataContext(); 
    DropDownList ddl_spList = (DropDownList)e.Item.FindControl("DropDownList_SpList"); 

    //Getting all service providers users 
    var spusers = (from x in db.User1s where x.usertype == "200" select x); 

    ddl_spList.DataSource = spusers; 

    ddl_spList.DataTextField = "email"; 

    ListView_AllTickets.DataBind(); 

} 

.aspx

<asp:DropDownList ID="DropDownList_SpList" runat="server" class="form-control" ClientIDMode="AutoID"> </asp:DropDownList> 

Обратите внимание, как я найти элемент управления, то привязку его к результат запроса LINQ. Когда я использую отладчик, данные извлекаются успешно, и поле «электронная почта» существует в возвращаемых данных. Однако, и по какой-то причине ListView_AllTickets будет иметь количество элементов, равное 0, даже после состояния DataBind().

+1

Попробуйте ddl_spList.DataBind(), может быть? – Maximus2012

+0

@ Maximus2012 Это работает! – Eyad

ответ

2

Вам нужно добавить следующую строку:

ddl_spList.DataBind(); 

Вы пересвязывание ListView_AllTickets, но это родительский объект и уже связан (отсюда событие вы обработки с помощью этого метода). Это опечатка?

Bind ddl_spList вместо.

+0

О, черт! Я потратил полдня, пытаясь понять, что не так с моим кодом. – Eyad

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