2010-01-11 87 views
1

在首次使用jqGrid的ASP.NET MVC應用程序中。在jqGrid中顯示我的數據

我有一個菜單,我叫母版頁的「員工」,從菜單中是這樣的:

<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 
     $(".mnuEmployee").click(function() { 
      $.post("/Employee/Index", null, function(data) { 
       $("#text").html(data); 
      }); 
     }); 
    }); 
</script> 

在控制器中,我有這樣的:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Index() 
{ 
    EmployeeModel model = new EmployeeModel(); 
    model.List = _employeeService.List(); 
    model.Languages = _languageService.List(); 
    return View("Index", model); 
} 

在View( Index.ascx),我有這樣的:

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     jQuery("#sandgrid").jqGrid({ 
      url: '/Employee/MyGridData/', 
      datatype: 'json', 
      mtype: 'GET', 
      height: 255, 
      width: 600, 
      colNames: ['Index', 'Name', 'Code'], 
      colModel: [ 
      { name: 'item_id', index: 'item_id', width: 65 }, 
      { name: 'item', index: 'item', width: 150 }, 
      { name: 'item_cd', index: 'item_cd', width: 100}], 

      pager: jQuery('#sandgridp'), 
      rowNum: 10, 
      rowList: [5, 10, 20, 50], 
      sortname: 'item_id', 
      sortorder: "desc", 
      viewrecords: true, 


      caption: 'Liste des employés' 
     }); 
    }); 
</script> 
<table id="sandgrid" cellpadding="0" cellspacing="0"></table> 
<div id="sandgridp" style="text-align:center;"></div> 

的問題是在這最後一部分(我認爲),我在我的模型中所有提交的數據,我想像在jqGrid中顯示員工列表和在經典文本框,textarea中使用的語言(以及更多)...如何使用「model.List」(IList)在網格中顯示?

謝謝,

回答

1

在textbox/textarea中顯示語言的原因是什麼?你的意思是選擇?如果是這樣,請查看http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules,查看「選擇」編輯類型。請注意,您可以有多選列表。

如果你只是想顯示的語言,然後做你的模型:

model.Languages = string.Join(_languageService.List().Select(x => x.Name).ToArray(), ","); 

然後jqGrid的會顯示你的語言作爲一個字符串,以逗號分隔。

但我建議你來決定(因爲它是不明確從Q):

  • 要如何顯示的語言/列表要編輯
  • 做,以及如何

也看看自定義格式化程序http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_formatter,你可以編寫一個函數來將你的語言列表轉換爲你想要的任何東西,輸入你獲得的數據,輸出你返回的字符串與任何HTML。如果您需要編輯單元格值,請不要忘記「unformatter」。例如,我使用自定義格式化程序顯示覆選框圖像而不是真/假文本。

+0

顯示列表。在這個頁面上,不僅有jqGrid,還有其他一些控件,比如下拉菜單,textarea,... – 2010-01-11 12:04:14

1

我有點困惑。你有jqGrid設置爲以JSON的形式對其數據進行AJAX查詢,因此不需要包含在Index視圖的模型中。

 
url: '/Employee/MyGridData/', 
datatype: 'json', 

要使用AJAX方法,您的控制器需要MyGridData操作。

[AcceptVerbs(HttpVerbs.Get)] 
public JsonResult MyGridData() 
{ 
    var list = _employeeService.List(); 
    return Json(list); 
} 

此外,在colModel名和索引屬性必須在模型中的屬性名相匹配。