2012-04-15 10 views
0

私は、基本的にアプリケーションの一連のアクションの値のjsonセットであるWebサービスを作成しました。その考え方は、MongoDB Collectionからキー/値のセットを返すことです。これまで戻り値は多少のようです:JSONオートコンプリートASP.NET Jquery UI

{"d":"[{\"label\":\"Add A Customer\",\"value\":\"\/EdCustomer\/\"},{\"label\":\"View Suppliers\",\"value\":\"\/Suppliers\/\"},{\"label\":\"Add A Customer\",\"value\":\"\/EdCustomer\/\"}]"} 

私はjQueryのUIの一部であり、オートコンプリートでこの仕事をするために次のJavaScript/jQueryのを持っている:

var commands; 
    var commandstest = [ 
    { 
    value: "test1", 
    label: "test1" 
    }, 
    { 
    value: "test2", 
    label: "test2" 
    } 
]; 
    $(document).ready(function() { 
    //The search button 
    $("#btnCmdSearch") 
    .button() 
    .click(function() { 
     alert("You searched for " + txtSearch.value); 
    }); 

$.ajax({ 
    url: "http://localhost:50305/SearchCommands.svc/GetCommands", 
    dataFilter: function (data) { 
    var msg = eval('(' + data + ')'); 

    if (msg.hasOwnProperty('d')) 
     return msg.d; 
    else 
     return msg; 
    }, 
    success: function (data) { 
    commands = data; 
    } 
}); 

//The search Box AutoComplete... 
$("#txtSearch").autocomplete({ 
    source:commands, 
    minLength: 2, 
}); 

}); 

興味深いのは、ときということです私は、期待通りに動作するオートコンプリートメソッドのソースでcommandstestを使用します。コマンド(json配列)を使用すると、何も起こりません。私はクロームで見て、私はエラーを取得:

Uncaught TypeError: Property 'source' of object #<Object> is not a function 

私はVARコマンドの宣言を変更した場合:

var commands = new Array(); 

そして、このエラーメッセージが表示されませんが、まだ何もオートコンプリートで起こりません。私は間違って何をしていますか?

答えて

1

tatsのは、それを詳しく見て連れて行くその後、イムを動作していない場合、私は返事

$("#txtSearch").autocomplete({ 
    source: function(request, response){ response(commands); }, 
    minLength: 2, 
}); 

すなわちソースが応答

を返すコールバック関数であることが必要だと思います。

+0

あなたは狡猾です。どうもありがとう。 –