jqgrid rowobject值未定义
我使用以下代码绑定jqgrid中的值。
我创建了一个链接按钮,用于访问特殊操作方法。
我需要将firstcolumn值传递给action方法。
但是,如果我使用这个以下href =’@ Url.Action(“ViewApplicants”,“HR”)?JobsID =“+ rowObject [0] +”’。它显示未定义的值。如何解决这个问题?
$(document).ready(function () { $("#Jobtable").jqGrid({ url: '/HR/PassJsonJob/', datatype: "json", mtype: 'GET', colNames: ['Job ID', 'Job Title', 'Job Experience', 'Job Location', 'ViewApplicants'], colModel: [ { name: 'JobsID', index: 'JobsID', width: 150, align: 'left', editable: true }, { name: 'JobTitle', index: 'JobTitle', width: 150, align: 'left', editable: true }, { name: 'JobExperience', index: 'JobExperience', width: 150, align: 'left', editable: true }, { name: 'JobLocation', index: 'JobLocation', width: 150, align: 'left', editable: true }, { name: 'ViewApplicants', index: 'ViewApplicants', width: 150, sortable: false, formatter: function (cellvalue, options, rowObject) { alert(rowObject) return "View Applicants"; } } ], rowNum: 10, rowList: [10, 20, 30], viewrecords: true, loadonce: true, gridview: true, pager: "#jQGridPager", cellEdit: false, rowNumbers: true, width: 1000, caption: 'Applied Jobs', viewrecords: true }) $('#Jobtable').jqGrid('navGrid', '#jQGridPager', { edit: true, add: false, del: false, view: false, search: false }); });
从URL /HR/PassJsonJob/
了解服务器响应的格式非常重要。 rowObject
的格式对应于服务器响应中的项的格式。 所以可能是rowObject.JobsID
而不是rowObject[0]
会纠正访问JobsID
属性的方法。 因为您使用loadonce: true
, rowObject
的格式在第一次加载时可能是rowObject[0]
。 稍后,例如,在本地分页或数据排序时, rowObject
的格式将是具有JobsID
属性的对象,因此rowObject.JobsID
将是正确的。
所以使用rowObject.JobsID
或rowObject[0] || rowObject.JobsID
rowObject[0] || rowObject.JobsID
可以解决您的问题。
另一个选项可能是在colModel
的JobsID
列的定义中使用属性key: true
。 只有当JobsID
在每一行中包含唯一值时,才能使用该属性。 在jqGrid将使用JobsID
列中的值作为rowid的情况下:分配给网格的行(
元素)的id
属性的值。 在这种情况下,可以使用options.rowId
来访问JobsID
值。
更新:自2014年底开发的自由jqGrid fork中还有一个选项。自定义格式化程序的2-d参数( options
)具有属性rowData
,它包含与rowObject
相同的信息,但它始终对象格式。 因此,使用options.rowData.JobsID
而不是rowObject[0] || rowObject.JobsID
rowObject[0] || rowObject.JobsID
。 根本不需要使用自定义格式化程序的3-d参数。 免费的jqGrid没有改变3-d参数的格式,以便与以前版本的jqGrid具有最佳的向上兼容性。