简单的Ajax自动完成实现不起作用

时间:2016-07-17 04:19:37

标签: c# ajax autocomplete

我在公司的实习即将结束,我已经接受了这样一个事实:我可能不会想出自动完成。但作为最后的努力,我想再试一次。

我似乎无法让AJAX自动完成功能完全正常运行。我试图遵循示例 - 即使是简单的示例,每次,自动完成下拉列表都会从HTML页面返回代码,一次一行,如:     <     !     d     Ø     C     Ť     ÿ     P     ë

等等。看起来似乎没有调用服务方法。我在我的Site.Master中有EnablePageMethods,我有方法(在后面的代码中)以ScriptMethod()& WebMethod标题。

这是我的内容页面(Site.Master的孩子):

    <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master"
    AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs"  
    Inherits="AutoCompleteTestingCompleteLy.WebForm1" %>
    <%@ Register assembly="AjaxControlToolkit"    
    namespace="AjaxControlToolkit"    
    tagprefix="ajaxToolkit" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="MainContent"   
    runat="server">

    <p></p>
    <p></p>
    <asp:TextBox ID="txtContactsSearch" runat="server"></asp:TextBox>
    <ajaxToolkit:AutoCompleteExtender ServiceMethod="SearchCustomers"
    MinimumPrefixLength="2"
    CompletionInterval="100" EnableCaching="false" CompletionSetCount="10"
    TargetControlID="txtContactsSearch"
    ID="AutoCompleteExtender1" runat="server" FirstRowSelected = "false">

    </ajaxToolkit:AutoCompleteExtender>
    <br />
    <br />


    </asp:Content>

并且......我的C#代码服务方法背后

namespace AutoCompleteTestingCompleteLy
{
public partial class WebForm1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    [System.Web.Script.Services.ScriptMethod()]
    [System.Web.Services.WebMethod]
    public static List<string> SearchCustomers(string prefixText, int count)
    Sci{
        string conString = "Data Source=DESKTOP-2NHEBS2;Initial Catalog=QualityDatabase;Integrated Security=SSPI";
        SqlConnection con = new SqlConnection(conString);



        string selectBatchSql = "SELECT * from [Batch Info]";
        SqlCommand com = new SqlCommand(selectBatchSql, con);

        List<string> customers = new List<string>();

        try
        {
            con.Open();

            using (SqlDataReader sdr = com.ExecuteReader())
            {
                while (sdr.Read())
                {
                    customers.Add(sdr["Batch"].ToString());
                    }
                }

            }
        finally
        {
            con.Close();
        }
        return customers;

    }
}

}

在Site.Master

中的ScriptManager中将EnablePageMethods设置为true

拜托,拜托......如果有人能提供帮助,我会恳求你。今年夏天我已经克服了许多障碍,但这让我感到困惑......

0 个答案:

没有答案