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する必要はありません。その代わりに、 1 つの既存のイベント ハンドル内で呼び出されるorコールバックを使用する方が効果的です。beforeSelectRowonCellSelect click

ちなみに、あなたが投稿したフォーマッターは、 のフォーマットがrowObject多くのことに依存しているため、機能しない可能性があります: グリッドをどのように埋めるか、datatype使用する ( "local""json"または"xml"の異なるフォーマットを生成することができます)、または の他の設定rowObjectを使用するかどうか、使用するかどうかなど。repeatitems: truejsonReaderloadonce

于 2013-05-16T16:26:10.767 に答える