asp.net - jqGrid - 如何计算 jqgrid 的列?

标签 asp.net jqgrid

我正在开发一个 ASP MVC 2 应用程序。它有一个 jqGrid,网格中的数据是从 Controller 返回的 JSON 对象填充的。我的网格有 3 列“单元号”、“面积”和“每平方米费率”。这些列值是从数据库中检索的。现在我需要的是添加第四列“单价”,其计算方法是“面积”和“每平方米费率”相乘。我怎样才能做到这一点?有没有办法在jqGrid中添加计算列?或者我可以在 Controller 中进行计算并将其添加为行单元格的新元素吗?

这是我的 Controller 代码:

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'
    });
});

提前致谢, 安西

最佳答案

我知道,我迟到了,但这将帮助任何正在寻找如何计算派生列的人

以下内容应该在 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
                          }
            }],

关于asp.net - jqGrid - 如何计算 jqgrid 的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3768906/

相关文章:

javascript - 选择文件后显示图像

c# - 主备 Web 服务器 ASP.Net Web 应用程序之间的故障转移

jquery - jqGrid 不向 url 添加搜索参数

javascript - jqGrid - 多次添加导航栏中的自定义按钮

jqgrid - 我们可以在 jqgrid colModel 中有 2 个格式化程序选项吗?

jquery - jqGrid:当 cellattr 返回包​​含 "style"的字符串时出现困惑

javascript - jqGrid 中动态选择的值未提交

ASP.NET MVC 身份验证 Cookie 未检索到

c# - 如何检查 Request.QueryString 是否不为空

c# - 在 RowCommand 的嵌套 GridView 中从 DropDownList 中检索值