この質問は、オートコンプリートが機能しないという別の質問を参照しています。その問題はまだ私のコードにありますが、私はこれを別の方法で行うことを考えました。別のjavascript関数からWebサービスを呼び出し、サービスから返された値をこのオートコンプリート関数に渡すことを考えています。これは、このjquery関数にダミー値を渡そうとしたときと同じです。Webサービスを呼び出していないかどうかわかりません。
今、私は自分のサービスを呼び出してリクエストを取得するための別の関数を作成しました-
function SendRequest()
{
debugger;
SearchIssues.GetServerResponse(document.getElementById('ctl00_ContentPlaceHolder1_txtIssueNo').value, OnComplete, OnError, OnTimeOut);
}
function OnComplete(arg)
{
alert(arg);
}
function OnTimeOut(arg)
{
alert("timeOut has occured");
}
function OnError(arg)
{
alert("error has occured: " + arg._message);
}
スクリプトマネージャーのタグに、Webサービスの参照を追加しました-
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/SearchIssues.asmx" />
</Services>
</asp:ScriptManager>
オートコンプリート関数を次のように更新しました-
$(function() {
debugger;
$(".tb").autocomplete({
source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"] });});
ここでは、正常に動作しているソースにダミーデータを渡しました。
私のWebサービスの署名は次のとおりです-
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<string> GetCompletionList(string prefixText)
{....
}
しかし、それでも私のWebサービスを呼び出さず、javascriptエラーを次のように返します-
SearchIssuesは未定義です
助けてくださいありがとう