我有一个包含编辑,删除和添加的ListView。这里的一切都很好,但是List太大了,我想用文本框和按钮给用户一个serach功能。Asp.net实现ListView控件的搜索功能
当用户单击搜索按钮时,List视图按搜索条件进行过滤。
有人可以帮助我实现这个请。 谢谢
我有一个包含编辑,删除和添加的ListView。这里的一切都很好,但是List太大了,我想用文本框和按钮给用户一个serach功能。Asp.net实现ListView控件的搜索功能
当用户单击搜索按钮时,List视图按搜索条件进行过滤。
有人可以帮助我实现这个请。 谢谢
那么,你必须知道你的基础结构;说你是渲染表,你需要通过每行编写JavaScript中循环,并做一些事情,如:
$("#table").find("tbody > tr").each(function() {
var row = this;
//loop through the cells, do the string match
var tds = $(this).find("td");
//match the inner HTML of the td to the search criteria, depending on how
//your search critiera is setup
//if not found
$(this).css("display", "none"); //hide the row
});
谢谢,但我正在寻找开箱ASP.NET ListView Control Serch功能(如果有的话) – 2011-05-24 12:37:05
有没有开箱即用的功能。你必须做这项工作。 – 2011-05-24 13:29:29
(在回答有关问题的意见......)
上取决于很多你的DOM结构。您需要知道ListView
如何布置其元素。例如,如果它们都是div
元素,那么您需要知道您的JavaScript代码。 (我要去承担使用jQuery的,因为它是一个安全的假设,这些天。)
从本质上讲,你的过滤器都将有至少一个文本输入元素:
<input type="text" id="searchFilter" />
你也可以有一个按钮进入过滤器,但为了简便起见我们只滤波器作为用户类型:
$(document).ready(function() {
$('#searchFilter').keyup(function() {
// Here you would do your filtering.
});
});
对于过滤本身,你可以使用:contains()
选择。查看关于它的信息here。基本上,你会隐藏所有的元素,然后显示匹配的元素。像这样(未经):
$('#parentDiv div').hide();
$('#parentDiv div:contains(' + $('#searchFilter').val() + ')').show();
的想法是隐藏所有孩子的div(您的选择可能需要更加具体,这取决于你的DOM),然后显示匹配过滤器的人。当然,不要忘记,如果过滤器文本为空,则有一个默认情况下显示全部。
这取决于你如何使你的ListView的,但如果你渲染一张桌子和想做的事,你可以使用一个jQuery插件,如UI Table Filter
我正在寻找开箱即用的ASP.NET ListView Control Serch功能。 – 2011-05-24 12:20:28
过滤客户端最终使用这样的:
protected void btnSearch_Click(object sender, EventArgs e)
{
DS.SelectCommand =
"SELECT ReportName, ReportType,
FROM Table
WHERE ReportName LIKE @param
ORDER BY ReportType Desc";
DS.SelectParameters.Add("Param", searchTxtBox.Text.Replace("'", "''"));
DS.DataBind();
ListView1.DataBind();
}
你想过滤客户端还是服务器端?前者将是一个更流畅的UX,后者可能更容易。 – David 2011-05-24 11:42:42
客户端请。 – 2011-05-24 12:03:30