因此,我花了4天時間研究並嘗試了所有可以在StackOverflow和其他網站上找到的東西。而且我無法讓我的Ajax AutoCompleteExtender正常工作。我使用VS 2012和.NET爲4.5 這裏ASP.NET和C#樓是我的代碼:AjaxToolKit自動完成擴展器不工作
〜/儀表板/ Default.aspx的
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolKit" %>
<ajaxToolKit:ToolkitScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/Dashboard/AutoComplete2.asmx" />
</Services>
</ajaxToolKit:ToolkitScriptManager>
<asp:TextBox ID="CarMake_TextBox" runat="server"></asp:TextBox>
<ajaxToolKit:AutoCompleteExtender
ID="CarMake_AutoCompleteExtender" runat="server"
Enabled="true"
ServicePath="AutoComplete2.asmx"
ServiceMethod="GetCarMakeList"
TargetControlID="CarMake_TextBox"
MinimumPrefixLength="1" FirstRowSelected="True"
>
</ajaxToolKit:AutoCompleteExtender>
</asp:Content>
〜/儀表板/ AutoComplete2.asmx.cs( C#)
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace CDC.Dashboard
{
/// <summary>
/// Summary description for AutoComplete2
/// </summary>
[WebService(Namespace = "http://websiteleaders.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class AutoComplete2 : System.Web.Services.WebService
{
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] GetCarMakeList(string prefixText, int count)
{
string sql = "Select DISTINCT Make from Car_Makes_Models Where Make LIKE @prefixText";
SqlDataAdapter da = new SqlDataAdapter(sql, "Data Source=localhost\\SQLEXPRESS;Initial Catalog=CDC;Integrated Security=True");
da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).Value = prefixText + "%";
DataTable dt = new DataTable();
da.Fill(dt);
string[] items = new string[dt.Rows.Count];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
items.SetValue(dr["Make"].ToString(), i);
i++;
}
return items;
}
}
}
我不能爲我的生活得到它的工作。當我嘗試通過Web瀏覽器運行Web Service並輸入值時,它會恰好檢索所需的信息並將它們返回爲字符串數組。但它看起來像AutoCompleteExtender只是不開火。
值得注意的是,我第一次嘗試它,它的工作。然後在任何後續嘗試後,它沒有。我很沮喪。如果我用IE來運行它,我會得到關於使用AJAX ScriptManager(我已經在使用)和4.0腳本的錯誤信息。我已經正確安裝和引用了AJAX工具包,並且它支持.NET v4.5,這是我的目標框架。
你試過從Firebug的網絡控制檯檢查AJAX日誌或可能提琴手? (所以你可能知道這個問題是在後臺進程或客戶端js或其他..) –
@Harsh我已經使用Fiddler和Firebug,並從控制檯我得到2錯誤: 錯誤:AjaxControlToolkit需要ASP.NET Ajax 4.0腳本。確保引用了正確版本的腳本。如果您使用的是ASP.NET ScriptManager,請切換到AjaxControlToolkit.dll中的ToolkitScriptManager。# AND 'TypeError:Sys.Extended is undefined' 正如您可以看到我使用AJAX ToolKitScriptManager。我有正確的引用和所有。 – TIPS