2009-08-25 106 views
0

嗯,我正在爲jQuery的jqGrid插件,並試圖將它合併到ASP.NET MVC應用程序。由於來自陷阱周圍的各種博客文章,我具備了所有基本功能。ASP.NET MVC與jqGrid表單編輯 - 控制器選擇選項的行動

我現在想要鍛鍊的是如何以這種方式從控制器返回數據,以便在編輯表單上填充選擇選項。

我知道我只需要給jqGrid提供一個URL來調用以獲取選項,但對於我來說,我無法想象(也許咖啡太少了)如何從Controller中進行渲染。

例如,選擇列表值可以被硬編碼爲「1:one; 2:2」,我只需要返回一個json對象的形式嗎?或者一個字符串?

任何幫助將不勝感激。

回答

0

哎呀......我在試圖找出存在的主要問題是什麼返回類型放對控制器的行動。最後它非常簡單,我看不到樹木的木材。我結束了從控制器行動一個簡單的字符串輸出:

public string ObjectList() 
{ 
    // replace this with the code to construct your list values 
    return "1:one;2:two"; 
} 

這麼簡單,它傷害承認我錯過了它。

1

爲了填充動態選擇下拉列表,只需在創建jqgrid上方創建一個變量即可。

var countries = $.ajax(
         {url:'/Specimens/GetAreaStrList/',async: false, 
      success: function(data, result) 
      { 
       if (!result) 
       alert('Failure to retrieve the Countries.'); 
       } 
      } 
      ).responseText; 

,然後你填充網格

 {name:'AreaID', index:'AreaID', width:150, align:'left', editable:true, 
         edittype:"select",editoptions:{size: 71} } 
       ], 
     onSelectRow: function(id) 
     { 
      if(id && id !== lastsel2) 
      { 
       jQuery('#list').restoreRow(lastsel2); 
       jQuery('#list').editRow(id, true); 
       lastsel2 = id; 
      } 
     }, 
     loadComplete: function() 
     { 
     jQuery('#list').setColProp('AreaID', {editoptions: {value: countries}}); 
     }, 
在控制器

和代碼:

公衆的ActionResult GetAreaStrList() { 回報內容(「171:俄羅斯聯邦; 86:另國家」); }

我已經從這個博客的啓發: http://geekswithblogs.net/renso/archive/2009/07/02/jqgrid-dynamically-loading-select-options.aspx