editable.html 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Editable TreeGrid - 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>Editable TreeGrid</h2>
  14. <div class="demo-info">
  15. <div class="demo-tip icon-tip"></div>
  16. <div>Select one node and click edit button to perform editing.</div>
  17. </div>
  18. <div style="margin:10px 0;">
  19. <a href="javascript:void(0)" class="easyui-linkbutton" onclick="edit()">Edit</a>
  20. <a href="javascript:void(0)" class="easyui-linkbutton" onclick="save()">Save</a>
  21. <a href="javascript:void(0)" class="easyui-linkbutton" onclick="cancel()">Cancel</a>
  22. </div>
  23. <table id="tg" class="easyui-treegrid" title="Editable TreeGrid" style="width:700px;height:250px"
  24. data-options="
  25. iconCls: 'icon-ok',
  26. rownumbers: true,
  27. animate: true,
  28. collapsible: true,
  29. fitColumns: true,
  30. url: 'treegrid_data2.json',
  31. method: 'get',
  32. idField: 'id',
  33. treeField: 'name',
  34. showFooter: true
  35. ">
  36. <thead>
  37. <tr>
  38. <th data-options="field:'name',width:180,editor:'text'">Task Name</th>
  39. <th data-options="field:'persons',width:60,align:'right',editor:'numberbox'">Persons</th>
  40. <th data-options="field:'begin',width:80,editor:'datebox'">Begin Date</th>
  41. <th data-options="field:'end',width:80,editor:'datebox'">End Date</th>
  42. <th data-options="field:'progress',width:120,formatter:formatProgress,editor:'numberbox'">Progress</th>
  43. </tr>
  44. </thead>
  45. </table>
  46. <script type="text/javascript">
  47. function formatProgress(value){
  48. if (value){
  49. var s = '<div style="width:100%;border:1px solid #ccc">' +
  50. '<div style="width:' + value + '%;background:#cc0000;color:#fff">' + value + '%' + '</div>'
  51. '</div>';
  52. return s;
  53. } else {
  54. return '';
  55. }
  56. }
  57. var editingId;
  58. function edit(){
  59. if (editingId != undefined){
  60. $('#tg').treegrid('select', editingId);
  61. return;
  62. }
  63. var row = $('#tg').treegrid('getSelected');
  64. if (row){
  65. editingId = row.id
  66. $('#tg').treegrid('beginEdit', editingId);
  67. }
  68. }
  69. function save(){
  70. if (editingId != undefined){
  71. var t = $('#tg');
  72. t.treegrid('endEdit', editingId);
  73. editingId = undefined;
  74. var persons = 0;
  75. var rows = t.treegrid('getChildren');
  76. for(var i=0; i<rows.length; i++){
  77. var p = parseInt(rows[i].persons);
  78. if (!isNaN(p)){
  79. persons += p;
  80. }
  81. }
  82. var frow = t.treegrid('getFooterRows')[0];
  83. frow.persons = persons;
  84. t.treegrid('reloadFooter');
  85. }
  86. }
  87. function cancel(){
  88. if (editingId != undefined){
  89. $('#tg').treegrid('cancelEdit', editingId);
  90. editingId = undefined;
  91. }
  92. }
  93. </script>
  94. </body>
  95. </html>