私はその後、私は私のテキストボックスのためのオートコンプリート機能を作成するためにjqueryの-UI-1.8.16を使用して、ユーザーコントロールjQueryのUIのオートコンプリートとWebサービス
<asp:TextBox CssClass="clsArtistList" ID="txtArtistList" runat="server"></asp:TextBox>
内部に配置されたクラスclsArtistList
のASPのテキストボックスを持っています。私はhttp://www.dotnetcurry.com/ShowArticle.aspx?ID=515からそれをコピーしたが、私は実際にそれが
$(".clsArtistList").autocomplete({
source: function(request, response) {
$.ajax({
url: "../ArtistWS.asmx/GetAllArtists",
data: "{ 'ARTIST_NAME': '" + request.term + "' }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function(data) { return data; },
success: function(data) {
response($.map(data.d, function(item) {
return {
value: item.ARTIST_NAME
}
}))
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
},
minLength: 1
});
をどのように動作するか分からないと、これは私のArtistCollectionは、アーティストのリストである、あなたの興味のために
[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
public List<Artist> GetAllArtists(string ARTIST_NAME) {
ArtistCollection coll = ArtistManager.GetAllArtists();
return coll.FindAll(a => a.ARTIST_NAME.ToLower().StartsWith(ARTIST_NAME.ToLower()));
}
私のWebサービスです。アーティストクラスは次のようになります:
public class Artist {
public string ARTIST_ID { get; set; }
public string ARTIST_NAME { get; set; }
public string ARTIST_NATIONALITY { get; set; }
public string ARTIST_INFO { get; set; }
}
しかし、コードは機能しません。私が入力するたびに、私はメッセージアラートを受け取る内部サーバーエラー
ありがとうございます。私はあなたを助ける必要があります
ウェブサービスが実行されてからを削除してください?あなたはブラウザをWebサービスに向けて試してみました。 –
私はそれを試みました、結果はOKです。しかし、XML形式です。ドキュメンテーションによると、結果はJSONでなければならないと言われています。あなたはJSONを返す方法を知っていますか? –
@HoàngLâmHuỳnh:XMLを使用できますが、クライアント上で結果を解析する必要があります。 XMLはどのように見えますか? –