Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net实现ListView控件的搜索功能_Asp.net - Fatal编程技术网

Asp.net实现ListView控件的搜索功能

Asp.net实现ListView控件的搜索功能,asp.net,Asp.net,我有一个包含编辑、删除和添加的列表视图。这里一切都很好,但是列表太大了,我想给用户一个带有文本框和按钮的serach功能 当用户单击“搜索”按钮时,列表视图将按搜索条件进行过滤 有人能帮我做到这一点吗。 谢谢好吧,你必须了解你的基本结构;假设您正在呈现一个表,您需要编写JavaScript来循环遍历每一行,并执行如下操作: $("#table").find("tbody > tr").each(function() { var row = this; //loop thro

我有一个包含编辑、删除和添加的列表视图。这里一切都很好,但是列表太大了,我想给用户一个带有文本框和按钮的serach功能

当用户单击“搜索”按钮时,列表视图将按搜索条件进行过滤

有人能帮我做到这一点吗。
谢谢

好吧,你必须了解你的基本结构;假设您正在呈现一个表,您需要编写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
});

嗯,你必须了解你的基本结构;假设您正在呈现一个表,您需要编写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结构。您需要知道
列表视图
是如何布置其元素的。例如,如果它们都是
div
元素,那么对于JavaScript代码,您需要知道这一点。(我将假设使用jQuery,因为现在这是一个安全的假设。)

本质上,您的过滤器将至少有一个文本输入元素:

<input type="text" id="searchFilter" />
对于筛选本身,可以使用
:contains()
选择器。请参阅有关它的信息。基本上,您会隐藏所有元素,然后显示匹配的元素。类似这样(未经测试):

其思想是隐藏所有子div(根据您的DOM,您的选择器可能需要更具体),然后显示与筛选器匹配的子div。当然,不要忘记,如果筛选文本为空,则使用默认的大小写来显示所有内容。

(作为对问题评论的回应…)

很大程度上取决于您的DOM结构。您需要知道
列表视图
是如何布置其元素的。例如,如果它们都是
div
元素,那么对于JavaScript代码,您需要知道这一点。(我将假设使用jQuery,因为现在这是一个安全的假设。)

本质上,您的过滤器将至少有一个文本输入元素:

<input type="text" id="searchFilter" />
对于筛选本身,可以使用
:contains()
选择器。请参阅有关它的信息。基本上,您会隐藏所有元素,然后显示匹配的元素。类似这样(未经测试):


其思想是隐藏所有子div(根据您的DOM,您的选择器可能需要更具体),然后显示与筛选器匹配的子div。当然,别忘了,如果筛选器文本为空,则使用默认大小写来显示所有内容。

这取决于如何呈现ListView,但如果呈现表并希望执行筛选客户端,则可以使用jQuery插件,如

,这取决于呈现ListView的方式,但如果呈现表并希望执行筛选客户端,则可以使用jQuery插件(如

)最终使用了以下功能:

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();               
}
最后使用了这个:

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();               
}

您想在客户端还是服务器端进行筛选?前者将是一个更平滑的用户体验,后者可能更容易。您想在客户端还是服务器端进行过滤?前者将是更平滑的用户体验,后者可能更简单。如果有现成的ASP.NET ListView控件Serch功能,我会寻找。如果有现成的ASP.NET ListView控件Serch功能,我会寻找现成的ASP.NET ListView控件Serch功能。谢谢,但如果有现成的ASP.NET ListView控件Serch功能,我会寻找现成的ASP.NET ListView控件Serch功能。你必须做这项工作。谢谢,但我正在寻找现成的ASP.NET ListView控件Serch功能,如果有的话,没有现成的功能。你必须做这项工作。