2016-06-24 5 views
0

私はjqgridを持っていて、私のカスタムフォーマッタで 'returnHyperLink'を呼び出しています。このコードは正常に動作し、私は要求していたリンクに行く:私はhrefの内部で関数を呼び出しています。どのように複数のパラメータを渡すことができますか?

function returnHyperLink(cellValue, options, rowdata, action) { 
    return '<a id="myLink" href="#" onclick="switchPage(\''+cellValue+'\');">'+cellValue+'</a>' 

} 

function switchPage(cellValue) { 
    $("#contents").load("jsp/newpage.jsp"); 
} 

をしかし、私はreturnHyperLinkからswitchPageを呼び出す呼び出し時に1つの以上のパラメータを追加したいと思います。

私はこのような何かに正しい書式を探しています:私は、その特定rowdata objectにアクセスし、そこから情報を抽出することができるように

function returnHyperLink(cellValue, options, rowdata, action) { 
return '<a id="myLink" href="#" onclick="switchPage(\''+cellValue+'\', \''+rowdata+'\');">'+cellValue+'</a>' 
} 

明らか

switchPage$("#contents").load("jsp/newpage.jsp");を呼び出す前に、私の新しいswitchPage関数は次のようになります:

function switchPage(cellValue, rowdata) 
+0

どうしてうまくいかないのですか? – Rayon

+0

@Rayon「私はこのようなものに正しい書式を探しています」と言ったとき、それは正しいとは思わないコードです。たとえば、console.logのrowdata.nameにしようとすると、「undefined」というメッセージが表示されます。私はreturnHyperLinkの内部から同じことをしようとすると正しく動作します。パラメータが –

+0

を通過しているとは思わないhttps://jsfiddle.net/rayon_1990/f4ro0noj/ – Rayon

答えて

0

インラインonclickイベント内でオブジェクトを渡すことができないため、行データを直接渡すことはできません。これを行うには、this Questionに記載されているjavascript内で定義されたonlickに配置する必要がありますが、それはあなたのためには機能しません。

だからあなたはあなたが必要とするすべてのrowdataフィールドispass何をすべきかを一つ一つは、あなたがこの

function returnHyperLink(cellValue, options, rowdata, action) 
{ 
    return '<a id="myLink" href="#" onclick="switchPage(' + cellValue+ ', ' + rowdata.Field1+ ', ' + rowdata.Field2+');">' + cellValue+ '</a>';   
} 

function switchPage(cellValue,field1, field2) { 
    // do whatever with field1,field2... 
    $("#contents").load("jsp/newpage.jsp"); 
} 
0

あなたは、配列を使用して、リンクの文字列を構築することができませんあなたがrowdatathenからフィールド1とフィールド2を必要と言うことができます、何か〜のように...

function returnHyperLink(cellValue, options, rowdata, action) { 
     var link = "<a id='myLink' href='#' onclick='switchPage(" + cellvalue; 
     $.each(rowdata, function (index, value) { 
      link += ", " + value 
     }); 
     link + ');">' + cellValue + '</a>'; 
     return link 
    } 
関連する問題