我尝试清除listview但是clear方法不起作用:
myListView.Items.Clear();
这不起作用。当我在这一行放置一个断点时,该行被执行,但我的listview不是空的。怎么来的?
我通过将数据源设置为数据表来填充我的listview。
我现在的解决方案是将数据源设置为空数据表。
我只是想知道为什么清楚不做这个伎俩?
我使用母版页。这里是按下按钮时内容页面的一些代码。 SearchTitle方法填充ListView。
相关代码:
protected void Zoek()
{
// Clear listbox
ListView1.DataSource = new DataTable();
ListView1.DataBind();
switch (ddlSearchType.SelectedValue)
{
case "Trefwoorden":
SearchKeyword();
break;
case "Titel":
SearchTitle();
break;
case "Inhoud":
SearchContent();
break;
}
}
填充ListView的方法
private void SearchTitle()
{
// Make panel visible
pnlResult.Visible = true;
pnlKeyword.Visible = false;
Search Search = new Search(txtSearchFor.Text);
ListView1.DataSource = Search.SearchTitle();
ListView1.DataBind();
}
答案 0 :(得分:22)
怎么样
DataSource = null;
DataBind();
答案 1 :(得分:20)
试试这个......
myListView.DataSource = null;
myListView.Items.Clear();
答案 2 :(得分:6)
我对此进行了搜索,我正在使用WPF c#。如果您在这里寻找WPF解决方案,请使用以下内容:
yourlistview.ItemsSource = null;
答案 3 :(得分:4)
我的猜测是Clear()
导致发送Changed
事件,从而触发从数据源自动更新列表视图。
所以这是一个功能,而不是一个bug ;-)
您是否尝试过myListView.Clear()
代替myListView.Items.Clear()
?也许这更好。
答案 4 :(得分:2)
不要打扰Clear()。 这样做: ListView.DataSource = null; ListView.DataBind();
关键是数据绑定(); 每次为我工作。
答案 5 :(得分:2)
问题出现是因为您正在尝试清除整个列表框。 只需使用listView1.Items.Clear();
答案 6 :(得分:1)
试试这个:
myListView.ItemsSource = new List< DictionaryEntry >();
答案 7 :(得分:0)
我建议从基础DataTable中删除行,或者如果您不再需要数据表,请将数据源设置为null。
答案 8 :(得分:0)
可能你的代码有效,但是在你清除它之后会在某个地方反弹。确保不是这种情况。如果您提供一些代码会更有帮助。你在哪里设置数据源?你在哪里数据绑定?你在哪里清理清单?
答案 9 :(得分:0)
listView.Items.Clear()
listView.Refresh()
/ e由于缺乏解释而更新。通常情况下,如果发生立即事件/方法,Clear()是不够的。最好使用Clear()后面的Refresh()更新视图,以便立即反映listView清除。无论如何,这已经解决了我的相关问题。
答案 10 :(得分:0)
这有点晚了,但这至少对我有用UWP
myListView.ItemsSource = null;
答案 11 :(得分:-1)
只需使用清晰的方法就像魅力一样。 ListView1.Items.Clear()我认为如果它不起作用,它可能是您放置此代码的位置。也可以尝试使数据源无效。