2011-07-06 12 views
1

私はこれに対する答えを探しましたが、私が探しているものを正確に見つけることはできませんでした。だから、もしこれが別のスレッドに返答されていれば、間違いないでください。jqueryオートコンプリートにsqlデータをプル

jqueryオートコンプリート入力フィールドで使用したい非常に大きなSQLテーブルがあります。私はjson形式でデータを返す必要があることを知っていますが、これを達成する最良の方法は不明です。このフィールドは、ASP.net MVCアプリケーションにあります。

私はおそらく、結果を返すPHPページを行うことができますが、それは私にとってはちょっと面倒なようです。移動する最善の方法は、私が呼び出すWebサービスを作成することですか?

ご協力いただきありがとうございます。あなたはJSONを調整する必要がある場合はここで

答えて

1

これは私がこれを達成した方法に関するいくつかのコードです。私は私のビューに

$をjquery UIプラグイン

JavaScriptを使用しています(機能(){

 $("#suburb").autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        url: '@Url.Action("ManufacturerAutoComplete", "AutoComplete")', type: "POST", dataType: "json", 
        data: { searchText: request.term, maxResults: 10 }, 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { label: item.DisplayValue, value: item.Suburb, id: item.SuburbID, postcode: item.Postcode, state: item.State } 
         })) 
        } 
       }) 
      }, 
      select: function (event, ui) { 

       $("#state").val(ui.item.state); 
       $("#postcode").val(ui.item.postcode); 

      } 
     }); 

私の見解で入力

<input type="text" id="suburb" /> 

そして、私のコントローラから最後にコード

[HttpPost] 
     public JsonResult ManufacturerAutoComplete(string searchText) 
     { 

      if (searchText.Length > 2) 
      { 
       var service = new SuburbSearchServiceClient(); 
       var results = service.SearchSuburb(searchText, "Australia"); 

       List<Suburbs> sList = new List<Suburbs>(); 

       foreach (var item in results) 
       { 
        sList.Add(new Suburbs() { SuburbID = item.SuburbID, Suburb = item.Suburb, State = item.State, Postcode = item.Postcode, DisplayValue = item.Suburb + " - " + item.State + " - " + item.Postcode }); 
       } 

       return Json(sList); 
      } 
      else 
      { 
       var data = string.Empty; 
       return Json(data); 
      } 
     } 

あなたはjqueryの-UIプラグインからJSとCSSを含める必要があり、あなたauticompleteの結果は、入力要素の下に表示されます。 JsonResultメソッドからわかるように、私は郊外データを取得するためにWebサービスを呼び出していますが、実際にはどこから来てもかまいません。 これが役立つことを願っています。

+0

私はこれを得ると思いますが、私はまだ必要なSQLコマンドで苦労しています。私はまだこれに取り組んでいるので、私は自分の進歩に更新します。助けてくれてありがとう。 – Downtap

+0

Json()メソッドを呼び出す際に問題が発生しました。それについての参考資料は何ですか? – Downtap

+0

最後の質問に気をつけてください。簡単な修正。 :) – Downtap

0

は良いサンプルhttp://blog.schuager.com/2008/09/jquery-autocomplete-json-apsnet-mvc.html

であるあなたがここにJavaScriptConverterクラス

+0

ありがとうaruss。私は実際にこの例を最高に気に入っていましたが、SQLの終わりにはまだ言及していません。しかし、リンクのおかげで、それは助けになります。 – Downtap

+0

SQL部分は完全に独自の部分です。Entity Frameworkを使用してデータベースにモデルをマップすることができます。そこには基本的なウォークスルーがありますhttp://blogs.msdn.com/b/adonet/archive/2011/03 /15/ef-4-1-model-amp-database-first-walkthrough.aspx – aruss

関連する問題