jqGrid - Как рассчитать столбец в jqgrid? - PullRequest
3 голосов
/ 22 сентября 2010

Я работаю над приложением ASP MVC 2. У него есть jqGrid, и данные в сетке заполняются из объекта JSON, возвращаемого контроллером.В моей сетке 3 столбца: «UnitNo», «Area» и «Rate per sqm».Эти значения столбцов извлекаются из базы данных.Теперь мне нужно добавить 4-й столбец «Цена за единицу», который рассчитывается путем умножения «Площадь» и «Ставка за кв.м».Как я могу сделать это?Есть ли способ добавить вычисляемый столбец в 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'
    });
});

Заранее спасибо, Анси

1 Ответ

7 голосов
/ 17 июня 2011

Я знаю, я опоздал, но это поможет любому, кто ищет способ вычисления производного столбца

Следующее должно работать в 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
                          }
            }],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...