0

カスタムボタン列でJqgridを使用しています。jqgrid の load complete メソッドを使用してボタンを設定します。ロード完了で使用するコードの下。

var grid =  $("#grid"),
             iCol = getColumnIndexByName(grid,'custom'); // 'custom' - name of the actions column
             grid.children("tbody")
                    .children("tr.jqgrow")
                    .children("td:nth-child("+(iCol+1)+")")
                    .each(function() {
                     $("<div>",
                            {
                                title: "button1",
                                mouseover: function() {
                                    $(this).addClass('ui-state-hover');
                                },
                                mouseout: function() {
                                    $(this).removeClass('ui-state-hover');
                                },
                                click: 
                                handle your click function here
                                }
                          ).css({"margin-left": "5px", float:"left"})
                           .addClass("ui-pg-div ui-inline-save")
                           .attr('id',"customId")
                           .append('<span class="ui-button-icon-primary ui-icon ui-icon-disk"></span>')
                           .appendTo($(this).children("div")); 
                )};

var getColumnIndexByName = function(grid,columnName) {
                var cm = grid.jqGrid('getGridParam','colModel'), i=0,l=cm.length;
                for (; i<l; i+=1) {
                    if (cm[i].name===columnName) {
                        return i; // return the index
                    }
                }
                return -1;
            };

すべての行にボタンを表示します。しかし、最初と2番目の列の値に基づいて、いくつかの行にのみ表示したいと考えています。最初と 2 番目の列の値を取得できる簡単な方法はありますか、または "tbody" をもう一度繰り返して結果を取得する必要がありますか? 私を助けてください。

4

1 に答える 1

1

カスタムフォーマッターをチェックしてください。

列では、グリッドの各行に対してトリガーする colmodel でフォーマッターを定義できます。次に、次のことができます。

function formatterName(cellvalue, rowid, rowObject)
{
    if(rowObject[1] == "YourValue" && rowObject[2] == "YourValue"){ // index for choosing which column to check
         // run code for displaying buttons in the columns that matches your criteria
    }
}
于 2012-09-04T15:35:02.147 に答える