1

我试图在许多网站上找到我的答案,但我认为我的代码中的每一件事都是正确的,但自动完成扩展器仍然不起作用。

<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;
}
4

1 回答 1

0

您可能需要在 <asp:AutoCompleteExtender> 标记中使用包含 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 可能已经包含了一些行,具体取决于您添加内容的方式,因此在添加之前检查它们是否已经存在。

于 2012-12-11T07:58:01.057 回答