2014-01-14 49 views
3

即時通訊使用本指南http://jqueryui.com/autocomplete/#custom-data和我知道什麼C#和剃鬚刀嘗試自動完成3個文本框時,只要其中一個被挑選。合併剃刀與jquery的自動完成功能

所以如果我輸入partno並從下拉列表中選擇一個項目名稱,desc和ID填充。如果我輸入任何其他字段,也是如此。

我創建了一個類,並把它與項目的列表中

var varItems = new List<Item>(); 
      varItems = db.Items.Select(tbl => new Item 
        { 
          ID = tbl.ID, 
          Name = tbl.Name, 
          PartNo = tbl.PartNo, 
          Description = tbl.Description 
        }).ToList(); 

然後發送,在一個viewbag

ViewBag.Items = var.items; 

然後在視圖

$("#Name").autocomplete({ 
     minLength: 0, 
     source: @ViewBag.Items, 
     focus: function(event, ui) { 
      $("#Name").val(ui.item.label); 
      return false; 
     }, 
     select: function(event, ui) { 
      $("#Name").val(ui.item.Name); 
      $("#PartNo").val(ui.item.PartNo); 
      $("#Description").html(ui.item.Description); 
      return false; 
     } 
    }); 

但它不喜歡viewbag在那裏。即時猜測我必須做一些循環產生類似於下面的東西?

var projects = [ 
     { 
     value: "jquery", 
     label: "jQuery", 
     desc: "the write less, do more, JavaScript library", 
     icon: "jquery_32x32.png" 
     }, 
     { 
     value: "jquery-ui", 
     label: "jQuery UI", 
     desc: "the official user interface library for jQuery", 
     icon: "jqueryui_32x32.png" 
     }, 
     { 
     value: "sizzlejs", 
     label: "Sizzle JS", 
     desc: "a pure-JavaScript CSS selector engine", 
     icon: "sizzlejs_32x32.png" 
     } 
    ]; 

如果是這樣我怎麼循環我的列表來創建上述?

謝謝你們

回答

2

試試這個:

source: @Html.Raw(Json.Encode(@ViewBag.Items)); 

這將編碼您的項目以JSON和它應該工作。

+0

進入一個空的下拉菜單出現在名稱字段下? – AlexW

+0

這可能是其他錯誤,你能確認json生成正確嗎?檢查Html源代碼。 –

+0

我認爲它看起來不錯yeah:來源:[{「ID」:1,「Name」:「HP DL360p」,「PartNo」:「670638-425」,「Description」:「」},{「ID」 2,「名稱」:「Samsung 840 Pro 256GB」,「PartNo」:「」,「Description」:「256GB SSD」}] – AlexW