【问题标题】:Error in Autcomplete TextBox自动完成文本框错误
【发布时间】:2016-08-12 16:10:23
【问题描述】:

我需要一个自动完成的文本框。我尝试了以下代码段:

<input type="text" id="tbx_srchByFn"  class="autosuggest" disabled="disabled" value="fieldname" runat="server"
                                   onclick="this.value=''" />

jquery

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css"
        rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            SearchText();
        });
        function SearchText() {
            $(".autosuggest").autocomplete({
                source: function (request, response) {
                    $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url: "DDL_Home.aspx/GetAutoCompleteData",
                        data: "{'username':'" + document.getElementById('tbx_srchByFn').value + "'}",
                        dataType: "json",
                        success: function (data) {
                            response(data.d);
                        },
                        error: function (result) {
                            alert("Error");
                        }
                    });
                }
            });
        }
    </script>

.cs 文件

    using System.Web.Services;
    [WebMethod]

    public static List<string> GetAutoCompleteData(string username)
    {
        List<string> result = new List<string>();
        using (SqlConnection con = new SqlConnection("constr"))
        {
            using (SqlCommand cmd = new SqlCommand("select DISTINCT Name from Register where Name LIKE '%'+@SearchText+'%'", con))
            {
                con.Open();
                cmd.Parameters.AddWithValue("@SearchText", username);
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    result.Add(dr["Name"].ToString());
                }
                return result;
            }
        }       


    }

当我在文本框中键入时,我没有得到输出。但是当我删除 runat="server" 时它可以工作。我只需要在服务器中使用它,以便我可以从服务器端获取文本框值

【问题讨论】:

  • 插入 html 文本框值作为字符串后面的代码 name = Request.Form["Name"];
  • 添加 runat="server" 并检查我的解决方案

标签: javascript c# jquery asp.net


【解决方案1】:

当我删除 runat="server" 时它可以工作。

我认为回发发生在您的代码中。所以你必须重新绑定SearchText()函数。在您的代码中添加以下javascript

试试这个代码:

var prm_lp = Sys.WebForms.PageRequestManager.getInstance();
//Re-bind for callbacks
prm_lp.add_endRequest(function () {
SearchText();
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 2010-09-22
    • 2016-04-27
    • 1970-01-01
    • 2012-05-16
    相关资源
    最近更新 更多