2011-12-16 17 views
1

バックエンド関数からいくつかの名前を入れたjquery配列を埋めたいと思います。 これはスクリプトです:より良い性能ものためにIListのリストからJquery Arrayを埋めてください

var availableTags = '@Url.Action("PopSearch", "Home")'; 
    $("#searchtxt").autocomplete({ 
     source: availableTags 
    }); 

public ActionResult PopSearch() 
    { 
     IndustryManager manager = new IndustryManager(); 
     ProductRangeManager manager2 = new ProductRangeManager(); 
     ProductCategoryManager manager3 = new ProductCategoryManager(); 

     IList<Industry> industryList = manager.GetIndustries(); 
     IList<ProductRange> rangeList = manager2.GetAllProductRanges(); 
     IList<ProductCategory> categoryList = manager3.GetAllProductCategories(); 
+1

:あなたは次のような値をcoimbineすることができます三? – tvanfosson

答えて

0

あなたはサーバー側でデータをprepeareし、単一のアレイにそれを返すことができます。クライアント側ではそれがremote datasourceを使用するために変更するために非常に簡単です:

$("#searchtxt").autocomplete({ 
     source: '@Url.Action("PopSearch", "ControllerName")' 
    }); 

更新:1つのリストとしての代わりに、名前のサーバ側を抽出して提供していないのはなぜ

var result = industryList.Select(x => x.Name) 
       .Union(rangeList.Select(x => x.Name)) 
       .Union(categoryList.Select(x => x.Name)).ToArray(); 
+0

linqを使用して組み合わせることができます。多分それは最善の解決策ではありませんが、サンプルを追加しました。 – Samich

+0

最初のリストのみが追加されますか? – Beginner

+0

何か不思議なことが起きていますが、すべての項目が追加されていますが、3つのtopしか表示されません。なぜなら、最初に配列を設定してから、その関数を呼び出す代わりにソースとして設定したいからです。 – Beginner

関連する問題