我试图在很多网站上找到我的答案,但我认为我的代码中的所有内容都是正确的,但仍然无法使用Auto Complete Extender。
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods = "true">
</asp:ScriptManager>
<asp:TextBox ID="txtName" runat="server" Width="190px" CssClass="TextBox"></asp:TextBox>
<cc1:AutoCompleteExtender
ID="AutoCompleteExtender1" ServiceMethod="GetNamesList"
MinimumPrefixLength="1"
CompletionInterval="1000" EnableCaching="true" CompletionSetCount="10"
TargetControlID="txtName" UseContextKey="True"
runat="server">
</cc1:AutoCompleteExtender>
[System.Web.Script.Services.ScriptMethod()] [System.Web.Services.WebMethod]
public string[] GetNamesList(string prefixText, int count, string contextKey)
{
DataSet dtst = new DataSet();
SqlConnection sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConStr"]);
string strSql = "SELECT FirstName FROM finex.tbl_SenderInfo WHERE FirstName LIKE '" + prefixText + "%' ";
SqlCommand sqlComd = new SqlCommand(strSql, sqlCon);
sqlCon.Open();
SqlDataAdapter sqlAdpt = new SqlDataAdapter();
sqlAdpt.SelectCommand = sqlComd;
sqlAdpt.Fill(dtst);
string[] cntName = new string[dtst.Tables[0].Rows.Count];
int i = 0;
try
{
foreach (DataRow rdr in dtst.Tables[0].Rows)
{
cntName.SetValue(rdr["FirstName"].ToString(), i);
i++;
}
}
catch { }
finally
{
sqlCon.Close();
}
return cntName;
}
答案 0 :(得分:0)
在&lt; asp:AutoCompleteExtender&gt;中你可能需要这样的东西。标记包含您的Web方法的页面的名称:
ServicePath="MyFile.aspx"
还要在aspx文件的顶部尝试以下操作:
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" %>
这是在您网页的主要内容中的某个位置,比如在开始正文标记之后:
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" EnablePageMethods="true"
runat="server">
</ajaxToolkit:ToolkitScriptManager>
我只是从我的一个项目中删除了那些行,有些可能已经被IDE包含,这取决于你添加的东西,所以在添加之前检查它们是否已经存在。