简体   繁体   English

在ASP.NET中,如何只包含一列以使用Javascript从gridview进行搜索?

[英]How to include only one column for searching from gridview using Javascript in asp.net?

I got a function from google for client side searching from grid using textbox 我从谷歌那里得到了一个功能,可以使用textbox从网格进行客户端搜索

and the function is : 函数是:

<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> 

and calling from textbox is as: textbox调用为:

<asp:TextBox ID="txtSearch" TabIndex="2"  onkeyup="filter2(this, '<%=GridView1.ClientID %>');" runat="server"  AutoPostBack="True"/>

and the Gridview I used for searching is as: 我用来搜索的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>

the issue I got is this function searches string from all the columns of the grid but, 我得到的问题是此函数从网格的所有列中搜索字符串,但是,

I need only first column that should function search string from. 我只需要应该从中搜索字符串的第一列。

I am weak in java script so I need your help to solve this issue. 我的Java脚本功能很弱,因此需要您的帮助来解决此问题。

Thanks in advance. 提前致谢。

Here is the code where you can try... 这是您可以尝试的代码...

.aspx 的.aspx

    <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>

Javascript 使用Javascript

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

Code Behind 背后的代码

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

Change 更改

ele = table.rows[r].innerHTML.replace(/<[^>]+>/g, "");

To

ele = table.rows[r].cells[0].innerHTML.replace(/<[^>]+>/g, "");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在asp.net上的ButtonClick上使用Javascript隐藏GridView列? - How to Hide GridView Column using Javascript on ButtonClick in asp.net? 使用Javascript在asp.net中的每一行中只允许在Gridview中选择一个单选按钮 - Allow only one radiobutton selection in Gridview in each row in asp.net using Javascript 使用asp.net C#中的javascript从具有单选按钮的gridview列中获取值 - Get value from gridview column that has radio button using javascript in asp.net c# 如何在asp.net中使用javascript获取GridView中给定行的列值? - How to get Column Value for a given Row within GridView using javascript in asp.net? 如何使用asp.net中的javascript在Gridview中排序 - How to Sort in Gridview using javascript in asp.net 如何从 GridView 的 ASP.NET Web Z645024253191293266Z Z6450242531912981C3683CAE88DZ 内部同时上传多个文件? - How to upload multiple files simultaneously from inside GridView of ASP.NET Web Forms using JavaScript/jQuery? 如何从基于只有一个asp.net形式的母版页的asp.net页中的javascript获取价值 - How to get value from javascript in asp.net page based on masterpage which can have only one asp.net form ASP.Net中GridView的JavaScript - JavaScript for GridView in ASP.Net 在JavaScript的Asp.net标签中显示Gridview列总计 - Show Gridview column total in Asp.net Label in JavaScript ASP.NET:gridview中的复选框列:如何在Page_Load中选择一个复选框 - ASP.NET: Checkbox column inside a gridview: How to select one checkbox at Page_Load
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM