JQgrid中上下文菜单项的自定义值

时间:2011-12-09 21:35:24

标签: jquery jquery-plugins jqgrid contextmenu

我正在使用此link from OlegDemo来创建上下文菜单。有没有办法将一些动态值传递给除rowId之外的每一行。可能是一种方法是为每一行设置隐藏值并获取那些隐藏的列值但不确定如何实现此功能。感谢您的任何帮助或建议..

    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;                                    
             }
        });

1 个答案:

答案 0 :(得分:2)

您可以使用已trigger初始化为rowid的id参数。因此,您可以使用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