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 页面。但与母版页一起使用,它不起作用。
masterpage.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 Web 表单中向 ajax 自动完成功能添加两个值