2011-12-09 74 views
1

我正在使用此link from OlegDemo來創建上下文菜單。有沒有辦法將一些動態值傳遞給rowId以外的每一行。可能有一種方法是爲每一行設置隱藏值並獲取隱藏的列值,但不確定如何實現此功能。感謝您的任何幫助或建議..JQgrid中上下文菜單項的自定義值

loadComplete: function(data) { 
     // Fix the Grid Width... 
     fixGridWidth($("#grid")); 
     // Context Menu 
     $("tr.jqgrow", this).contextMenu('contextMenu', { 
      bindings: { 
       'abc1': function(trigger) { 
     // would like to pass some custom values 
       }, 
       'abc2': function(trigger) { 
      // open a link in new window using a hyperlink 
       }, 
       'abc3': function(trigger) { 
      // custom logic 
       } 
      }, 
      onContextMenu : function(event, menu) { 
       //var rowId = $(event.target).parent("tr").attr("id"); 
       //var grid = $("#grid"); 
       //grid.setSelection(rowId);          
       //return true;          
      } 
     }); 

回答

2

您可以使用具有id初始化爲ROWID trigger參數。所以你可以使用getCellgetRowData。例如,該方法abc1可以像以下

loadComplete: function() { 
    var $this = $(this); // it will be the same like $("#grid") 
    $("tr.jqgrow", this).contextMenu('contextMenu', { 
     bindings: { 
      abc1: function(trigger) { 
       var rowData = $(this).jqGrid('getRowData', trigger.id); 
       // now you can access any data from the row including 
       // hidden columns with the syntax: rowData.colName 
       // where colName in the value of 'name' property of 
       // the column 
      }, 
      ... 
     }, 
     onContextMenu : function(event, menu) { 
      ... 
     }, 
     // next settings 
     menuStyle: { 
      backgroundColor: '#fcfdfd', 
      border: '1px solid #a6c9e2', 
      maxWidth: '600px', // to be sure 
      width: '100%' // to have good width of the menu 
     }, 
     itemHoverStyle: { 
      border: '1px solid #79b7e7', 
      color: '#1d5987', 
      backgroundColor: '#d0e5f5' 
     } 
    }); 

看到here它使用menuStyleitemHoverStyle和其改善了一點的上下文菜單的可見性多一個演示。演示從我最近發佈的the bug request

+1

非常感謝Oleg,你非常有幫助。是否可以增加contextmenu的寬度,對於我來說,如果文本太長,文本會被封裝。也可以使用任何菜單項的超鏈接直接轉到另一個頁面(target = _blank)點擊菜單項? – varaprakash

+0

@varaprakash:非常好的問題!我測試了一下,並在'menuStyle'和其他參數中用'width:'100%''更新了答案。 – Oleg

+0

@varaprakash:我忘了提及[錯誤報告](http://www.trirand.com/blog/?page_id=393/bugs/small-bug-fixes-in-jquery-contextmenu-js-plugin/ #p25321)我最近發佈的。我的建議對你也很有趣。要打開URL,只需設置'window.location'。例如,請參見[這裏](http://stackoverflow.com/a/3024278/315935)或[這裏](http://stackoverflow.com/a/8285665/315935)。 – Oleg