如何解决Asp.net实现对ListView控件的搜索功能
| 我有一个包含编辑,删除和添加的ListView。这里一切都很好,但是列表太大了,我想为用户提供带有文本框和按钮的搜索功能。 当用户单击搜索按钮时,列表视图将按搜索条件过滤。 有人可以帮助我实现这一目标。 谢谢解决方法
好吧,你必须知道你的底层结构。假设您正在呈现表格,则需要编写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
});
,(针对对此问题的评论...)
在很大程度上取决于您的DOM结构。您需要知道ѭ1的布局方式。例如,如果它们都是div
元素,那么您需要了解JavaScript代码。 (我将假设使用jQuery,因为最近这是一个安全的假设。)
本质上,您的过滤器将至少具有一个文本输入元素:
<input type=\"text\" id=\"searchFilter\" />
您还可以使用一个按钮来启用过滤器,但为简便起见,我们仅在用户键入时进行过滤:
$(document).ready(function() {
$(\'#searchFilter\').keyup(function() {
// Here you would do your filtering.
});
});
对于过滤本身,可以使用:contains()
选择器。在这里查看有关它的信息。基本上,您将隐藏所有元素,然后显示匹配的元素。像这样(未经测试):
$(\'#parentDiv div\').hide();
$(\'#parentDiv div:contains(\' + $(\'#searchFilter\').val() + \')\').show();
想法是隐藏所有子div(取决于您的DOM,您的选择器可能需要更具体),然后显示与过滤器匹配的子div。当然,请不要忘记在过滤器文本为空的情况下使用默认大小写来显示所有内容。
,这取决于您呈现ListView的方式,但是如果呈现表并想要进行客户端过滤,则可以使用jQuery插件,例如UI Table Filter
,最终使用了这个:
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();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。