2010-09-22 97 views
3

我正在一個ASP MVC 2 application.It有一個jqGrid和網格中的數據從控制器返回的JSON對象填充。我的網格有3列'UnitNo','Area'和'Rate per sqm'。這些列值是從數據庫中回收的。現在我需要的是添加第四列「單價」,這是通過乘以「面積」和「每平方米的價格」計算出來的。我怎樣才能做到這一點?有沒有辦法在jqGrid中添加一個計算列?或者,我可以在我的控制器中進行計算,並將其添加爲行單元格的新元素?jqGrid - 如何計算列到jqgrid?

這裏是我的控制器代碼:

public JsonResult GetERVList() 
    { 
     var ervRep=new ERVRepository(); 
     IList<ERVMaster> list = ervRep.ListERVData(); 
     int pageSize = 50; 
     int totalRecords = list.Count(); 
     var totalPages = (int)Math.Ceiling(totalRecords/(float)pageSize); 
     var jsonData = new 
     { 
      total = totalPages, 
      pageSize, 
      records = totalRecords, 
      rows = (from ervdata in list 
        select new 
        { 
         i = ervdata.Id, 
         cell = new[] 
          { 
           ervdata.UnitNo, 
           ervdata.Area, 
           ervdata.RatePerSQM 


          } 

        }).ToArray() 
     }; 
     return Json(jsonData, JsonRequestBehavior.AllowGet); 

}

和我的jqGrid代碼是這樣的

<script type="text/javascript"> 
jQuery(document).ready(function() { 
    jQuery("#list").jqGrid({ 
     url: '/ERV/GetERVList/', 
     datatype: 'json', 
     mtype: 'GET', 
     colNames: ['Unit', 'Area', 'Rate per SQM'], 
     colModel: [ { name: 'UnitNo', index: 'UnitNo' }, 
        { name: 'Area', index: 'Area' }, 
        { name: 'RatePerSQM', index: 'RatePerSQM' }], 
     pager: jQuery('#pager'), 
     rowNum: 10, 
     rowList: [5, 10, 20, 50], 
     sortname: 'Id', 
     sortorder: "Id", 
     viewrecords: true, 
     caption: 'My first grid' 
    }); 
}); 

由於提前, Ancy

回答

7

我知道,我遲到了,但是這將幫助任何人誰是尋找如何計算派生列

繼應的jqGrid V4.0工作

變化colNames和colModel配置按照以下

colNames: ['Unit', 'Area', 'Rate per SQM', 'Unit Price'], 
colModel: [ { name: 'UnitNo', index: 'UnitNo' }, 
      { name: 'Area', index: 'Area' }, 
      { name: 'RatePerSQM', index: 'RatePerSQM' }, 
      { name: 'RatePerSQM', index: 'RatePerSQM', 
       formatter: function (cellvalue, options, rowObject) 
         { 
          return rowObject["Area"] * cellvalue 
          } 
      }], 
+0

colmodel包含重複的col名稱。 cellvalue引用自身。所以這似乎不起作用。可能需要使用col索引 – Andrus 2011-09-07 17:45:57