【问题标题】:Ajax Auto-complete Text Box in ASP.NET does not work within master pageASP.NET 中的 Ajax 自动完成文本框在母版页中不起作用
【发布时间】: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();
    }

任何帮助解决这个问题。

【问题讨论】:

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

标签: c# asp.net ajax autocomplete


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-12-15
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多