1

1 つのページに 2 つの jqgrid があります。そして、これらの 2 つにはコンテキスト メニューがあるはずです。「myMenu1」と「myMenu2」など、2 つの異なるコンテキスト メニューがある場合に可能です。しかし、コンテキスト メニューを 1 つだけにしたいのですが、それを両方のグリッドに使用したいので、実際にはoleg のリンクから参照しました。どうすれば達成できるか提案してください??

<div class="contextMenu" id="myMenu1" style="display:none">
         <ul style="width: 200px">
        <li id="edit">
            <span class="ui-icon ui-icon-pencil" style="float:left"></span>
            <span style="font-size:11px; font-family:Verdana">Edit Row</span>
        </li>
        <li id="del">
            <span class="ui-icon ui-icon-trash" style="float:left"></span>
            <span style="font-size:11px; font-family:Verdana">Delete Row</span>
        </li>
        </ul>
       </div>   

そして、私がやっているバインディングは以下のようなものです。

loadComplete: function() {
                      $("tr.jqgrow", this).contextMenu('myMenu1', {
                          bindings: {
                              'edit': function(trigger) {
                                if (trigger.id && trigger.id !== lastSelection) {
                                      grid_location.restoreRow(lastSelection);
                                      grid_location.editRow(trigger.id, true);
                                lastSelection = trigger.id;
                                     }

                              },
                              'del': function(trigger) {
                          if ($('#del').hasClass('ui-state-disabled') === false) {
                                      // disabled item can do be choosed
                                      if (trigger.id && trigger.id !== lastSelection) {
                                          grid_location.restoreRow(lastSelection);
                                        //grid.editRow(trigger.id, true);
                                        //lastSelection = trigger.id;
                                             }
                                      grid_location.delGridRow(trigger.id, delSettings);
                                  }
                              }
                          },
                          onContextMenu: function(event/*, menu*/) {
                              var rowId = $(event.target).closest("tr.jqgrow").attr("id");
                              //grid.setSelection(rowId);
                              return true;
                          }
                      });
                  }
4

2 に答える 2

0

ローカルデータについてこれを解決し、コード全体をここに投稿しています。唯一の懸念は、2つのグリッドのdateタイプの列が同じ名前(またはインデックス)を持っている場合、日付ピッカーが日付を選択しないことです。そのため、私は異なる名前(inv_dateとinvdate)を使用しましたが、サーバー側のデータの場合はまだ混乱しています。

onContextMenu: function(event/*, menu*/) {
    /*
      In this line we will be specifying on which grid the context menu has to perform
      and this variable 'grid' has to be used in the 'onclickSubmitLocal' function.
    */
    grid = $("#currnt_grid");
    var rowId = $(event.target).closest("tr.jqgrow").attr("id");
    return true;
}
于 2012-10-15T14:00:14.057 に答える
0

$(event.target).closest("table")もちろんサブグリッドがない場合、それは現在のjqgridへの参照だと思います。

于 2012-10-13T20:51:23.847 に答える