自动完成扩展程序无法正常工作

时间:2012-12-11 07:50:52

标签: sql-server ajaxcontroltoolkit

我试图在很多网站上找到我的答案,但我认为我的代码中的所有内容都是正确的,但仍然无法使用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;
}

1 个答案:

答案 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包含,这取决于你添加的东西,所以在添加之前检查它们是否已经存在。