contextmenu.html 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>TreeGrid ContextMenu - jQuery EasyUI Demo</title>
  6. <link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
  7. <link rel="stylesheet" type="text/css" href="../../themes/icon.css">
  8. <link rel="stylesheet" type="text/css" href="../demo.css">
  9. <script type="text/javascript" src="../../jquery.min.js"></script>
  10. <script type="text/javascript" src="../../jquery.easyui.min.js"></script>
  11. </head>
  12. <body>
  13. <h2>TreeGrid ContextMenu</h2>
  14. <div class="demo-info">
  15. <div class="demo-tip icon-tip"></div>
  16. <div>Right click to display the context menu.</div>
  17. </div>
  18. <div style="margin:10px 0;"></div>
  19. <table id="tg" class="easyui-treegrid" title="TreeGrid ContextMenu" style="width:700px;height:250px"
  20. data-options="
  21. iconCls: 'icon-ok',
  22. rownumbers: true,
  23. animate: true,
  24. collapsible: true,
  25. fitColumns: true,
  26. url: 'treegrid_data2.json',
  27. method: 'get',
  28. idField: 'id',
  29. treeField: 'name',
  30. onContextMenu: onContextMenu
  31. ">
  32. <thead>
  33. <tr>
  34. <th data-options="field:'name',width:180">Task Name</th>
  35. <th data-options="field:'persons',width:60,align:'right'">Persons</th>
  36. <th data-options="field:'begin',width:80">Begin Date</th>
  37. <th data-options="field:'end',width:80">End Date</th>
  38. <th data-options="field:'progress',width:120,formatter:formatProgress">Progress</th>
  39. </tr>
  40. </thead>
  41. </table>
  42. <div id="mm" class="easyui-menu" style="width:120px;">
  43. <div onclick="append()" data-options="iconCls:'icon-add'">Append</div>
  44. <div onclick="removeIt()" data-options="iconCls:'icon-remove'">Remove</div>
  45. <div class="menu-sep"></div>
  46. <div onclick="collapse()">Collapse</div>
  47. <div onclick="expand()">Expand</div>
  48. </div>
  49. <script type="text/javascript">
  50. function formatProgress(value){
  51. if (value){
  52. var s = '<div style="width:100%;border:1px solid #ccc">' +
  53. '<div style="width:' + value + '%;background:#cc0000;color:#fff">' + value + '%' + '</div>'
  54. '</div>';
  55. return s;
  56. } else {
  57. return '';
  58. }
  59. }
  60. function onContextMenu(e,row){
  61. e.preventDefault();
  62. $(this).treegrid('select', row.id);
  63. $('#mm').menu('show',{
  64. left: e.pageX,
  65. top: e.pageY
  66. });
  67. }
  68. var idIndex = 100;
  69. function append(){
  70. idIndex++;
  71. var d1 = new Date();
  72. var d2 = new Date();
  73. d2.setMonth(d2.getMonth()+1);
  74. var node = $('#tg').treegrid('getSelected');
  75. $('#tg').treegrid('append',{
  76. parent: node.id,
  77. data: [{
  78. id: idIndex,
  79. name: 'New Task'+idIndex,
  80. persons: parseInt(Math.random()*10),
  81. begin: $.fn.datebox.defaults.formatter(d1),
  82. end: $.fn.datebox.defaults.formatter(d2),
  83. progress: parseInt(Math.random()*100)
  84. }]
  85. })
  86. }
  87. function removeIt(){
  88. var node = $('#tg').treegrid('getSelected');
  89. if (node){
  90. $('#tg').treegrid('remove', node.id);
  91. }
  92. }
  93. function collapse(){
  94. var node = $('#tg').treegrid('getSelected');
  95. if (node){
  96. $('#tg').treegrid('collapse', node.id);
  97. }
  98. }
  99. function expand(){
  100. var node = $('#tg').treegrid('getSelected');
  101. if (node){
  102. $('#tg').treegrid('expand', node.id);
  103. }
  104. }
  105. </script>
  106. </body>
  107. </html>