2015-11-15 2 views
0

У меня есть ListView, который отображается отлично. Однако, когда я пытаюсь установить DataSource программно он выдает эту ошибку:Listview бросает исключение, когда я пытаюсь установить DataSource

DataSource or DataSourceID cannot be defined on 'ListView1' when it uses model binding. 

Это как моя кнопка выглядит код:

protected void btSearch_Click(object sender, EventArgs e) 
{ 
    string searchValue = tbSearch.Text; 
    if (!string.IsNullOrWhiteSpace(searchValue)) 
    { 
    using (WalkContext db = new WalkContext()) 
    {   
     var query = (from w in db.DogWalks.Include("Pictures") 
        where w.Title.Contains(searchValue) 
        select w); 

     ListView1.DataSource = query; 
     ListView1.DataBind(); 
    } 
    } 
} 

И это отрывок из моего ListView:

<asp:ListView ID="ListView1" runat="server" DataKeyNames="WalkID" ItemType="DogWalks.DAL.DogWalk" SelectMethod="ListView1_GetData"> 
<ItemTemplate> 
    <div class="row"> 
    <div class="col-md-3"> 
     <asp:Image ID="Image1" class="img-responsive pull-left" style="min-width:262.5px;min-height:150px;" runat="server" ImageUrl=<%# Item.Pictures.FirstOrDefault().PictureUrl %>/> 
    </div> 
    <div class="col-md-9"> 
     <a href="/Walks/WalkDetails?WalkID=<%#Item.WalkID%>"> 
     <h3><b><%# Item.Title%></b></h3> 
     </a> 
     ... 
    </div> 
    </div> 
</ItemTemplate> 

В отладчике я вижу, что запрос вернув правильное количество результатов, я просто не могу заставить Listview принять запрос. Я также попытался добавить .toList(), но это не решило проблему.

ответ

0

Ошибка довольно сам пояснительный. С помощью Model Binding вы не можете установить DataSource (SelectMethod="ListView1_GetData"). Вам необходимо переместить логику запроса с 'btSearch_Click' на ListView1_GetData метод

+0

спасибо, удалось найти обходное решение – gudthing

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