0

我想知道如何让 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'...
   } 
}
4

1 回答 1

1

我建议您使用answerthis one中描述的方法。您不需要绑定onclick到某些全局方法。beforeSelectRow相反,使用或onCellSelect回调将在一个现有 click事件句柄内调用更有效。

顺便说一句,您发布的格式化程序可能不起作用,因为格式rowObject取决于很多事情:您如何填充网格,datatype您使用的("local""json"可以"xml"产生不同格式的rowObject),您是否使用repeatitems: true或其他一些设置jsonReader,是否使用loadonce等等。

于 2013-05-16T16:26:10.767 回答