그래서 저는 4 일 동안 StackOverflow 및 다른 사이트에서 찾을 수있는 모든 것을 조사하고 시도했습니다. 그리고 저는 Ajax AutoCompleteExtender를 작동시킬 수 없습니다. 내가 VS 2012 여기에 .NET 4.5 에 대한 ASP.NET과 C#의 건물을 사용하고 것이 내 코드입니다 :AjaxToolKit 자동 완성 Extender가 작동하지 않습니다.
~/대시 보드/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;
}
}
}
나는 그 일을 제대로 할 수 없다. 웹 브라우저를 통해 웹 서비스를 실행하고 값을 입력하면 필요한 정보를 바로 검색하여 문자열 배열로 반환합니다. 그러나 AutoCompleteExtender가 실행되지 않는 것처럼 보입니다.
내가 처음 시도했을 때 주목할 가치가있다. 이후의 시도 후에는 그렇지 않습니다. 나는 어리 석다. IE와 함께 실행하면 AJAX ScriptManager (이미 사용하고있는 스크립트)와 4.0 스크립트를 사용하는 데 대한 알려진 오류 메시지가 나타납니다. AJAX 툴킷이 제대로 설치 및 참조되어 있고 예, .NET Framework v4.5가 제 목표 프레임 워크입니다.
당신이 불을 지르고의 네트워크 콘솔에서 아약스 로그를 검사하기 위해 노력 또는 피들러 할 수 있나요? (그래서 당신은 문제가 백그라운드 프로세스 또는 클라이언트 쪽 js 또는 다른 .. 알 수 있습니다) –
@Harsh 나는 피들러와 방화범을 사용하고 콘솔에서 내가 2 오류 : '오류 : AjaxControlToolkit은 ASP.NET이 필요합니다 Ajax 4.0 스크립트. 올바른 버전의 스크립트가 참조되었는지 확인하십시오. 당신은 ASP.NET 스크립트 관리자를 사용하는 경우, AjaxControlToolkit.dll.' 에 ToolkitScriptManager로 전환 '형식 오류 : Sys.Extended이 undefined' 입니다 그리고 당신은 내가 AJAX ToolKitScriptManager를 사용하고 볼 수 있습니다. 나는 그것을 올바르게 참조했다. – TIPS