使用javascript的aspx GridView过滤器

时间:2011-01-30 21:07:43

标签: c# javascript

我正在使用带有c#代码的Asp.net,VS 2010。 我有一个带有gridview的页面,显示了一个成员列表。我想使用没有任何ajax的javascript来过滤网格中的行作为用户类型。例如,如果用户键入“Jo”,则“John”和“Jonny”的行将保留,其他行将被过滤掉。

感谢。

2 个答案:

答案 0 :(得分:0)

在这种情况下,肯定JQuery会成为你的朋友。 www.jquery.com 尝试一些用于一般用法的教程。 然后在Init脚本中引用Object,直接搜索带有这些字母的所有TD,并添加“.each()。remove(this);”

应该可以使用,否则请粘贴更多代码。

LG Jonas Plitt

答案 1 :(得分:0)

Here's您需要的工作示例

function SetupFilter(textboxID, gridID, columnName) {
    $('#' + textboxID).keyup(function () {
        var index;
        var text = $("#" + textboxID).val();

        $('#' + gridID + ' tbody tr').each(function () {
            $(this).children('th').each(function () {
                if ($(this).html() == columnName)
                    index = $(this).index();
            });

            $(this).children('td').each(function () {
                if ($(this).index() == index) {
                    var tdText = $(this).children(0).html() == null ? $(this).html() : $(this).children(0).html();

                    if (tdText.indexOf(text, 0) > -1) {
                        $(this).closest('tr').show();
                    } else {
                        $(this).closest('tr').hide();
                    }
                };
            });
        });
    });
};

然后你需要做的就是,在你的页面头部或启动.js文件中包含上面的代码段后,为你想要主动过滤网格的每个文本框调用下面的代码:

$(function () { SetupFilter("myTextBox", "myGridView", "My Column Name"); });