如何使用自定义格式化程序内置函数来调用非jqGrid单独函数?

时间:2013-05-16 16:14:12

标签: javascript jquery jqgrid

我想知道如何让jqGrid自定义格式化程序来调用单独的函数“test1”?我在“test1”函数上得到一个未定义的错误。

脚本#1 ......

//colModel json objects...
{ name: 'Vin', index: 'Vin' },
{ name: 'Links', index: 'Links', formatter: jqgridCellFormatterLink }

//jqGrid formatter function...
function jqgridCellFormatterLink(cellValue, options, rowObject) {
    return "<span onclick='test1(\"" + rowObject[0] + "\");'>Test</span>";
}

//non-jqGrid function
function test1(parmVin) {
    alert(parmVin);
}

...谢谢

//脚本#2 ......

//colModel json objects...
{ name: 'Vin', index: 'Vin' },
{ name: 'Links', index: 'Links', formatter: function(cellValue,options,rowObject) { return "<span>Test</span>";} }

beforeSelectedRow: function(rowid, e) {
   if (this.p.colModel[$.jgrid.getCellIndex($(e.target).closest("td")[0])].name === 'Links') 
   {
       alert($('#blah').getCell(rowid, 0));  //Can be 0 or 'Vin'...
   } 
}

1 个答案:

答案 0 :(得分:1)

我建议您使用the answerthis one中描述的方法。您无需将onclick绑定到某些全局方法。而不是使用beforeSelectRowonCellSelect回调更有效,这些回调将在一个现有的 click事件句柄中调用。

顺便说一下,您发布的格式化程序可能无法正常工作,因为rowObject的格式取决于很多内容:如何填充网格,datatype您使用的"local" "json" },"xml"rowObject可以生成不同格式的repeatitems: true),无论您使用jsonReader还是loadonce的其他设置,是否使用{{1}或者不是等等。