Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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中使用Javascript从gridview中只包含一列进行搜索?_Javascript_C#_Asp.net_Gridview - Fatal编程技术网

如何在asp.net中使用Javascript从gridview中只包含一列进行搜索?

如何在asp.net中使用Javascript从gridview中只包含一列进行搜索?,javascript,c#,asp.net,gridview,Javascript,C#,Asp.net,Gridview,我从谷歌获得了一个功能,可以使用textbox 其功能是: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script> function filter2(phrase, _id) { var words = phrase.value.toLowerCase().split(" ");

我从谷歌获得了一个功能,可以使用
textbox

其功能是:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script>
        function filter2(phrase, _id) {
            var words = phrase.value.toLowerCase().split(" ");
            var table = document.getElementById(_id);
            var ele;
            for (var r = 1; r < table.rows.length; r++) {
                ele = table.rows[r].innerHTML.replace(/<[^>]+>/g, "");
                var displayStyle = 'none';
                for (var i = 0; i < words.length; i++) {
                    if (ele.toLowerCase().indexOf(words[i]) >= 0)
                        displayStyle = '';
                    else {
                        displayStyle = 'none';
                        break;
                    }
                }
                table.rows[r].style.display = displayStyle;
            }
        }

    </script> 
我用于搜索的
Gridview
如下所示:

 <asp:GridView ID="GridView1"  runat="server"  AutoGenerateColumns="False"    >
                                            <Columns>
<asp:BoundField DataField="ClassName" HeaderText="Class Name" />
<asp:BoundField DataField="PerWeekClass" HeaderText="Week Classes" />
<asp:BoundField DataField="SubID" visible="false" />
                                            </Columns>
                                           </asp:GridView>

我遇到的问题是这个函数从网格的所有列中搜索字符串

我只需要第一列,应该从中搜索字符串

我在java脚本方面很弱,所以我需要你的帮助来解决这个问题


提前感谢。

这是您可以尝试的代码

.aspx

改变

ele=table.rows[r].innerHTML.replace(+/]+>/g,”;

ele=table.rows[r].cells[0].innerHTML.replace(+/]+>/g,”;

一个问题。。。。必须使用javascript进行过滤吗?这是客户端,我从上级命令得到了这样做的命令,这很好。谢谢你抽出时间。我还需要一件事,这个函数检查包含序列的字符串,所以若我需要像SQL中的“like”查询一样从序列的开头搜索字符串。。那怎么办呢?我想你明白了。@Waqas将javascript的“indexOf”改为“match”。。然后删除条件“>=0”读取此@Waqas更新了代码。如果这是您的答案,请检查答案:)您在javascript中是否有任何错误?因为没有工作?我试过了,我的目的是工作不,我没有得到任何错误。但当我在文本框中输入字符串时,它什么也没做
 <asp:GridView ID="GridView1"  runat="server"  AutoGenerateColumns="False"    >
                                            <Columns>
<asp:BoundField DataField="ClassName" HeaderText="Class Name" />
<asp:BoundField DataField="PerWeekClass" HeaderText="Week Classes" />
<asp:BoundField DataField="SubID" visible="false" />
                                            </Columns>
                                           </asp:GridView>
    <asp:TextBox ID="txt" runat="server" onkeyup="filter(this);"></asp:TextBox>

    <br />

    <asp:GridView ID="gv" runat="server" Width="100%" AutoGenerateColumns="false">
        <Columns>
            <asp:BoundField DataField="Filter" />
            <asp:BoundField DataField="Name" />
        </Columns>

    </asp:GridView>
function filter(txt) {
        var grid = document.getElementById("<%=gv.ClientID %>");
        var row = grid.rows.length;
        var filterValue = txt.value.toLowerCase();
        var splitter = filterValue.split(' ');
        var display = '';
        var currentRowValue = '';

        for (var i = 1; i < row; i++) {
            display = 'none';
            currentRowValue = grid.rows[i].cells[0].innerText;

            for (var j = 0; j < splitter.length; j++) {
                if (currentRowValue.toLowerCase().startsWith(splitter[j]))
                    display = '';
                else {
                    display = 'none';
                    break;
                }
            }
            grid.rows[i].style.display = display;
        }
    }
protected void Page_Load(object sender, EventArgs e)
{
    // Check
    if (!IsPostBack)
    {
        // Varaible
        DataTable dt = new DataTable();
        dt.Columns.Add("Filter");
        dt.Columns.Add("Name");

        // Add
        dt.Rows.Add("Do", "Doraemon");
        dt.Rows.Add("No", "Nobita");
        dt.Rows.Add("Si", "Sizuka");
        dt.Rows.Add("Sin", "Sinyu");

        // Bind
        gv.DataSource = dt;
        gv.DataBind();
    }
}
ele = table.rows[r].innerHTML.replace(/<[^>]+>/g, "");
ele = table.rows[r].cells[0].innerHTML.replace(/<[^>]+>/g, "");