ASP.NET 中的 Ajax 自动完成文本框在母版页中不起作用

Posted

技术标签:

【中文标题】ASP.NET 中的 Ajax 自动完成文本框在母版页中不起作用【英文标题】:Ajax Auto-complete Text Box in ASP.NET does not work within master page 【发布时间】:2015-04-18 12:03:37 【问题描述】:

此示例适用于普通的 asp.net 页面。但与母版页一起使用,它不起作用。

ma​​sterpage.master

 <asp:TextBox ID="TextBoxSearchCompany" class="form-control" placeholder="Search company..." runat="server"/>
                         <asp:AutoCompleteExtender ID="txtName_AutoCompleteExtender" runat="server" DelimiterCharacters="" Enabled="True" ServiceMethod="GetCompletionList" 
                            ServicePath="" TargetControlID="TextBoxSearchCompany" UseContextKey="True" MinimumPrefixLength="2" CompletionInterval="10" EnableCaching="true" CompletionSetCount="3">
                        </asp:AutoCompleteExtender>

背后的母版页代码

        [System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
    public static string[] GetCompletionList(string prefixText, int count, string contextKey)
    
        string connectionString = ConnectionString.GetConStr();
        SqlConnection conn = new SqlConnection(connectionString);
        // Try to use parameterized inline query/sp to protect sql injection
        SqlCommand cmd = new SqlCommand("SELECT TOP " + count + " company FROM [vwCompanyLookup] WHERE company LIKE '" + prefixText + "%'", conn);
        SqlDataReader oReader;
        conn.Open();
        List<string> CompletionSet = new List<string>();
        oReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        while (oReader.Read())
            CompletionSet.Add(oReader["company"].ToString());
        return CompletionSet.ToArray();
    

任何帮助解决这个问题。

【问题讨论】:

我也有同样的问题。对我来说,自动完成功能不适用于包含母版页的每个页面(我的自动完成代码位于包含母版页的页面内)。我最终将我的母版页直接添加到我使用自动完成的页面:(。非常非常肮脏的解决方案,因为我的母版页上的更改不会反映在这些页面上。任何帮助都会被应用 【参考方案1】:

在服务路径中输入服务名称 --> GetCompletionList

【讨论】:

以上是关于ASP.NET 中的 Ajax 自动完成文本框在母版页中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥只读文本框在 ASP.NET 中不返回任何数据?

为啥只读文本框在 ASP.NET 中不返回任何数据?

用户登录时在母版页中隐藏登录面板。(ASP.net)

在 Asp.net Web 表单中向 ajax 自动完成功能添加两个值

JQuery 选择器在 ASP.NET 网络表单中的错误控件中激活

jQuery ui对话框中的Asp.net ajax自动完成功能不起作用