[英]How to bind jqGrid colModel Formatter dynamically
我正在尝试动态绑定jqGrid列Model的格式化程序。 我按如下所示动态构建colModel
数组。
ColModel:[{name:Id,width:50,formatter:customerLinkFormatter}]
我将格式化程序扩展如下
$.extend($.fn.fmatter, {
customerLinkFormatter: function (cellvalue, options, rowdata) {
return '<a href="CustomerEdit.aspx?id=' + rowdata[options.colModel.name] + '"> ' + cellvalue + '</a>';
}
});
但是,“ Id”列未显示任何链接。 请帮我弄清楚。
这是代码的一部分
$(document).ready(function () {
"use strict";
$.ajax({
type: "POST",
url: "../Hdlr.ashx?",
datatype: "json",
success: function (msg) {
jqcolNames = msg.ColNames,
jqcolModel = msg.ColModel,
PopulateGrid();
},
error: function (msg) {
alert(' error ' + msg.responseText);
}
});
});
function PopulateGrid() {
$('#list').jqGrid({
url: "../Hdlr.ashx?",
colNames: jqcolNames,
colModel: jqcolModel,
jsonReader: {
cell: "",
id: "0",
repeatitems: false
},
rowNum: 10,
rowList: [10, 20, 30],
pager: "#pager",
rownumbers: true,
viewrecords: true,
search: false,
caption: "Grid Information"
}).jqGrid("navGrid", "#pager", { edit: false, add: false, del: false, search: false });
}
尝试定义formatter
,就像定义一个函数一样:
function customerLinkFormatter(cellvalue, options, rowdata) {
return '<a href="CustomerEdit.aspx?id=' + rowdata.name + '"> ' + cellvalue + '</a>';
};
如果扩展了$.fn.fmatter
,则应使用字符串 “ customerLinkFormatter”而不是直接使用customerLinkFormatter
函数:
colModel:[{name: "Id", width: 50, formatter: "customerLinkFormatter"}]
如果您之前未使用相应的字符串值定义Id
变量,则name:Id
的用法也是错误的。
您撰写了有关动态绑定jqGrid的格式化程序的文章。 您只需要在colModel
内部更改formatter
属性。 例如,可以使用setColProp
方法。 请参阅此处的setColProp
用法setColProp
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.