Javascript或jQuery Gridview过滤器

时间:2013-12-22 10:39:24

标签: javascript jquery asp.net gridview

我有一个 ASP.NET GridView 和多个 ListBoxes 作为Departments,Categories,Faculties等。在代码隐藏中从数据库(MSSQL)填充ListBoxes和GridView。

我需要一个 JS jQuery 函数,该函数接受所选项的值并按此值过滤gridview行。 例如,当从部门列表框中选择一个部门时,它将仅显示该部门中的条目(隐藏其他部分)。

我知道,如果没有示例代码,这不是一个正确的问题,但在这种情况下我真的需要一些提示。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

这可能会让你开始。

<强>的jQuery

$("#ListBoxID").change(function() {
    $("#" + GridViewID).find('td').not(':contains("' + $(this).val() + '")').parents('tr').hide();
});

如果您的ListBox.SelectionMode设置为Multiple$(this).val()将包含一系列所选项目,您也必须处理该项目。

答案 1 :(得分:0)

您有几个选择:

  1. 您可以使用jQuery Datatables(它会获取您的gridview生成的现有<table>标记,并使用各种有用选项为其提供支持。然后,您可以使用他们的API添加您的过滤逻辑。这是一个例子: http://www.datatables.net/release-datatables/examples/plug-ins/range_filtering.html

  2. 另一种选择是编写自己的jQuery ajax调用,单击列表框项时会触发该调用。然后它将在您的代码中调用静态Web方法(返回字符串)(并将选定的列表框选项作为参数发送)。您的静态Web方法将使用参数值重新查询数据库以过滤结果。然后,您将在代码中构建gridview,数据将其与查询结果绑定,将gridview转换为html字符串并将其作为对初始jQuery Ajax调用的响应返回。在AJAX调用的success:回调中,您将获取响应html字符串并将其放入容纳页面上的Gridview的容器html元素中。关于这种方法的更多信息:

  3. 如果这看起来很复杂,您可以使用常规回发(而不是AJAX),在列表框上创建选定的索引更改事件,该事件将使用筛选选项重新查询数据库并重新绑定现有的gridview。

  4. 希望这有帮助