2

グループ化された行にボタンを提供する必要があります。そのボタンの onclick の場合、rowData をキャプチャする必要があります。カスタム formatter 、 grid.SetCell オプションを使用してこれを実装しようとしましたが、機能しませんでした。サンプルコードは次のとおりです。

grid.jqGrid({

        datatype: 'local',

colNames: ['Id', 'Order Id', 'Name', 'OrderName'],

 colModel : [

{ name: 'ID', index: 'ID', editable: true}, //// I grouped by this column

 { name: 'OrderID', index: 'OrderID', width: 30, align: 'center'},

 { name: 'Name', index: 'Name', width: 30, align: 'center'},

 { name: 'OrderName', index: 'OrderName', width: 30, align: 'center'}

],

groupingView: {

            groupField: ['ID'],
            groupCollapse: true,
            groupColumnShow: [false],
            groupText: ['<b>{0}</b></div><input type = "button" class = "button" value = "NEW" id = "btnNew" style = "width:100px; hieght:10px" onclick = "javascript:AddNew({OrderID})" /><<b>{1} Orders</b>']


function AddNew(orderId)
{
//// DO SOME THING
}

上記の例では、グリッドは Id でグループ化されます。グループ化された各行で、onclick イベントが Order Id で構成されるボタンを作成する必要があります。(注文 ID は、各グループの下のすべての行で同じです)。ここでも Count を表示する必要があります。

上記のグループ Text で注文 ID を渡すことができませんでした。次に、ID 列でカスタム フォーマッタを使用します。

var html ;

formatter: function(cellValue, options, rowObject)
{
 if ((options.rowId.toString()).indexOf("listghead") === -1) {

    html = cellvalue + "<input type = "button", value = "New" onclick = AddNew(' +rowObject[1] +')
}

return html;

}

rowObject 値が渡されましたが、グループ化が壊れていました。条件のグループ化が正常に機能する場合に上記を使用しない場合、onclick イベントが中断されます。

助けて 。

前もって感謝します。

4

2 に答える 2

0

次のように、rowObject を介して行の値を取得できます。

html = rowObject.childNodes[1].childNodes[0].wholeText;

このコードは、rowObject の内容を含む文字列をその列に返します

于 2012-11-14T17:39:11.720 に答える
0

group header に関しては、rowObject を渡すだけで、groupheader に関しては undefined または null ではありません。

グループヘッダーであることを検出したら、 alert(rowObject) を使用してテストしてください。

于 2013-06-14T13:20:19.053 に答える