【发布时间】: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();
}
任何帮助解决这个问题。
【问题讨论】:
-
我也有同样的问题。对我来说,自动完成功能不适用于包含母版页的每个页面(我的自动完成代码位于包含母版页的页面内)。我最终将我的母版页直接添加到我使用自动完成的页面:(。非常非常肮脏的解决方案,因为我的母版页上的更改不会反映在这些页面上。任何帮助都会被应用
标签: c# asp.net ajax autocomplete