Wijmo FlexGrid的上下文菜单

本文主要讲述在FlexGrid中如何引用Menu菜单作为右键菜单(上下问菜单)您可以使用菜单控件创建上下文菜单.

发布于 2018/01/30 00:00

ComponentOne Enterprise

概述

本文主要讲述在FlexGrid中如何引用Menu菜单作为右键菜单(上下问菜单)

您可以使用菜单控件创建上下文菜单.

例如,这个示例创建一个FlexGrid的上下文菜单,并处理几个元素上的“上下文菜单”事件,以在用户请求时显示菜单,如图

image

实现步骤如下

首先,我们需要实例化两个控件,flexgrid、Menu,在flexgrid上我们使用“.has-ctx-menu“来绑定我们的上下文菜单

Html:

   1:  <h3>
   2:     FlexGrid与ContextMenu
   3:  </h3>
   4:  <div id="theGrid" class="has-ctx-menu"></div>

Js:

   1:  onload = function() {
   2:   
   3:    // create the menu
   4:    var div = document.createElement('div');
   5:    var menu = new wijmo.input.Menu(div, {
   6:      displayMemberPath: 'header',
   7:      selectedValuePath: 'cmd',
   8:      dropDownCssClass: 'ctx-menu',
   9:      itemsSource: [
  10:          { header: '<span class="glyphicon glyphicon-asterisk"></span>&nbsp;&nbsp;New', cmd: 'NEW' }, 
  11:        { header: '<span class="glyphicon glyphicon-folder-open"></span>&nbsp;&nbsp;Open', cmd: 'OPEN' }, 
  12:        { header: '<span class="glyphicon glyphicon-floppy-disk"></span>&nbsp;&nbsp;Save', cmd: 'SAVE' },
  13:        { header: '<span class="wj-separator"></span>' }, 
  14:        { header: '<span class="glyphicon glyphicon-remove"></span>&nbsp;&nbsp;Exit', cmd: 'EXIT' },
  15:          ],
  16:      itemClicked: function(s, e) {
  17:        alert('Executing **' + menu.selectedValue + '** for element **' + menu.owner.id + '**');
  18:      }
  19:    });
  20:   
  21:    // use it as a context menu for one or more elements
  22:    var els = document.querySelectorAll('.has-ctx-menu');
  23:    for (var i = 0; i < els.length; i++) {
  24:      els[i].addEventListener('contextmenu', function(e) {
  25:        menu.owner = wijmo.closest(e.target, '.has-ctx-menu');
  26:        if (menu.owner) {
  27:            e.preventDefault();
  28:            menu.show(e);
  29:        }
  30:      }, true);
  31:    }
  32:    
  33:    var theGrid = new wijmo.grid.FlexGrid('#theGrid', {
  34:        itemsSource: getData()
  35:    });
  36:   
  37:    // create some random data
  38:    function getData() {
  39:      var countries = 'US,Germany,UK,Japan,Italy,Greece'.split(','),
  40:        data = [];
  41:      for (var i = 0; i < countries.length; i++) {
  42:        data.push({
  43:          id: i,
  44:          country: countries[i % countries.length],
  45:          sales: Math.random() * 100000,
  46:          expenses: Math.random() * 50000
  47:        });
  48:      }
  49:      return data;
  50:    }
  51:  }

Css:

   1:  .owners:after {
   2:    content: "";
   3:    clear: both;
   4:    display: block;
   5:  }
   6:  .owners > div {
   7:    float: left;
   8:    margin: 20px;
   9:    padding: 20px;
  10:  }

就可以得到我们的flexgrid的上下文菜单。

更多信息请参照:

Wijmo产品网站:/developer/wijmojscore

Wijmo中文文档:/developer/wijmojscore

Wijmo中文学习教程:http://demo.grapecity.com.cn/wijmo5/learningwijmo/

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态