2010-12-16 4 views
2

私はAJAXコールが増えているWebサイトを持っています。オートコンプリートメソッドを別のWebファイルに置きますか?

私はこのようになりますAJAXコードがあります。もともと

function setupNameAutocomplete(id) { 
    $(id).autocomplete({ 
     source: function(request, response) { 
      $.ajax({ 
       url: "selectName.aspx/getNameAutocomplete", 
    .... 

、JavaScriptコードの上にユーザーが検索する人の名前で入力したWebページ上で使用されたが、私はその名前にオートコンプリートしたかったと決めました。

しかし、私がウェブサイトの開発を続けていくうちに、同じ名前のオートコンプリートを多くのページで使用できるようにすることを決めました。論理的には、javascriptコードをすべてのページで繰り返すのではなく、外部の.jsファイルに入れるのが理にかなっていました。

また、AJAXを扱う.netコードを独自のファイルに入れたいと思うことも意味があります。

[WebMethod] 
    public static IEnumerable<string> getNameAutocomplete(string text) 
    { 
     IEnumerable<string> values = lookupNamesThatStartWith(text); 
     return values; 
    } 

当然、それは外部の.asmxまたは多分.ashxファイルに属しているが、私は呼んでいない限り、私が働いて私のjavascriptのコードを取得することはできません。このコードのように見えた:.NETのオートコンプリートのコードは次のようになりますselectName.aspxの上のコード。

別のコードファイルでAJAX .netコードを取得するにはどうすればよいですか?

+0

この質問を参照してくださいhttp://stackoverflow.com/questions/457183/how-can-we-integrate-jquery-autocomplete-using-asp-net-webservie-and-sql-databas ** AND ** http: //stackoverflow.com/questions/305994/jquery-autocomplete-and-asp-net –

+0

プラグインまたはjQuery UIバージョンの自動補完機能があるので、どのバージョンがどれかを知るのに役立ちます。 –

答えて

0

私が問題を正しく理解している場合、実行可能なソリューションは、サービスが継承している汎用クラスWebMethodを継承する基本クラスを持つことです。

これは、オートコンプリートルックアップのロジックをクラスに抽象化し、必要に応じて毎回WebMethodから呼び出すことで、「かなりきれい」にすることができます。

関連する問題