当我尝试设置 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
方法
我有一个显示良好的 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
方法