繁体   English   中英

如何从asp:textbox调用javascript函数?

[英]How to call javascript function from asp:textbox?

我正在使用textbox从数据库中搜索项目并将其加载到gridview

我在gridview上使用了custom paging ,每页仅显示25条记录

我发现了用于在客户端上搜索记录的java 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>

并将其称为:

<input name="txtTerm" onkeyup="filter2(this, '<%=GridView1.ClientID %>')" placeholder="Search" type="text"/>

此功能从激活页中搜索记录,显然从整个数据库中搜索将在服务器端完成,而我使用了asp textbox

但是我在asp textbox需要onkeyup="filter2(this, '<%=GridView1.ClientID %>')"事件,例如

 <asp:TextBox ID="txtSearch" onkeyup="filter2(this, '<%=GridView1.ClientID %>')"  placeholder="Search" runat="server"  AutoPostBack="True" OnTextChanged="txtSearch_TextChanged" />

但是asp不允许我这样做。

我需要您的帮助才能实现这一目标。

提前致谢。

编辑:

我需要在单个textbox同时搜索(客户端,服务器端),因为

客户端允许从gridview的加载页面搜索

服务器端允许在单击时从数据库中搜索

您可以通过下面的代码添加呈现的输入控件的client属性:

protected void Page_Load(object sender, EventArgs e)
{

    txtSearch.Attributes.Add("onkeyup", string.Format("filter2(this,'{0}')",GridView1.ClientID)");
}

编辑:

在@Lukas正确评论之后,我们应该说主要问题是在文本框webcontrol中使用<%=GridView1.ClientID %>内联表达式:

<%=%>会将字符串直接写到响应流,这是在构造服务器控件之后发生的,因此将被呈现为字符串而不进行解析。

例如:

<asp:Label runat="server" ID="label">test</asp:Label>
    <asp:TextBox runat="server" ID="txt" Text="<%# label.ID %>" onkeyup="alert('<%: label.ID %>')"></asp:TextBox>

这就是我们的输出:

在此处输入图片说明

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM