当我尝试设置 DataSource 时,Listview 抛出异常

Listview throws exception when I try to set 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() 但这并没有解决问题。

这个错误很容易解释。使用 Model Binding 时不能设置 DataSource(在您看来是 SelectMethod="ListView1_GetData")。 您需要将查询逻辑从 'btSearch_Click' 移动到 ListView1_GetData 方法