SMART datagrid v.1 > Concepts

Back  Forward

Concepts.Menu Overview

如果网格displayOptionspreventSystemMenu不是true, 当右击SMART datagrid格内部时,网格将会替代浏览器上下文菜单, 显示通过GridBase.setContextMenusetDefaultContextMenu指定的弹出菜单。 另外,如果在列中设置popupMenu,当点击数据单元格的菜单按钮时, 将会显示通过GridBase.registerPopupMenu注册的相关弹出菜单。 上述两种情况,都会用包含下列属性的对象数组,指定菜单。 

Code -1
    grid.setContextMenu([{
        label: "Add Row",
        callback: function () {
            grdMain.insert();
            grdMain.setFocus();
        }
    }, {
        label: "Delete Rows",
        callback: function () {
            grdMain.deleteSelection();
        }
    }, {
        label: "-" // menu separator
    }, {
        label: "Excel Export",
        tag: 'excel'
    }]);
Table-1  弹出菜单项目属性
属性说明
'type'没有指定或可能会是'check''radio'。 如果为'check',当点击菜单项目时,将会变更'checked'状态。 如果为'radio',当点击菜单项目时,具有相同'group'的其他项目的'checked'将会变成false,并且被点击的项目将会变成true
在'checked'为true的项目左侧,将会显示check符号。如果为'radio',就会显示小圆。 而且,'checked'状态将会与其他属性一同传递至菜单回调函数。
'visible'如果为false,这个项目将不会显示在菜单。默认值为true
'enabled'如果为false,就无法通过点击这个项目而运行回调。默认值为true
'label'显示在项目的文本。如果设置为'-',就会成为菜单分隔线。
'group'如果'type'为'radio',当点击这个菜单项目时,具有相同的相关值的其他项目的'checked'将会变成false, 而这个菜单项目的'checked'将会变成true
'checked'如果'type'为'check',当点击这个菜单项目时,这个值将会被切换为truefalse
'tag'指定和使用可以区分这个菜单项目的任一值。
'children'指定子菜单项目为数组。
'callback'当点击这个菜单项目时,将会运行的回调函数。
    function (data) { if (data.tag == 'abc') {} }
'data'中将会包含和传递这些菜单项目属性。
See Also
GridBase.setContextMenu
GridBase.setDefaultContextMenu
GridBase.registerPopupMenu
GridBase.unregisterPopupMenu
GridBase.getPopupMenu
GridBase.onPopupMenuClicked
popupMenu
Examples
上下文菜单
列弹出菜单