jqGrid の列の 1 つでフォーマッタを使用しています。フォーマッタはいくつかのロジックを使用して何を表示するかを決定し、場合によっては ajax メソッドを呼び出します。Fiddler で、適切なデータが ajax 呼び出しから返されることを確認しました。また、変数が適切に設定されていることを Chrome デバッグ ツールで確認しました。ただし、シーケンスはすべてソートされていないため、私の列の戻り値は「未定義」です。デバッグ ツールのタイムラインで、jqgrid が既に読み込まれた後に getJSON 呼び出しが呼び出されていることがわかります。
私はこれを最初に試しました:
function myFormatter(cellvalue, options, rowObject)
{
if (rowObject[0] == something) {
$.getJSON('@Url.Action("MyAction", "MyController"), function (myResult) {
var myObject = myResult[0];
return myObject.myID;
});
}
else {
return "";
}
}
また、async=false を使用して ajax 呼び出しを使用してみました。また、type と dataType に異なる値を試しましたが、結果はすべて同じです。
function myFormatter(cellvalue, options, rowObject)
{
if (rowObject[0] == something) {
$.ajax({
type: 'POST',
url: '@Url.Action("MyAction", "MyController"),
async: false,
success: (function(result) {
var myObject = myResult[0];
return myObject.myID;
})
});
}
else {
return "";
}
}