easyui datagrid数据编辑

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Row Editing in DataGrid - jQuery EasyUI Demo</title>

    <link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">

    <link rel="stylesheet" type="text/css" href="../../themes/icon.css">

    <link rel="stylesheet" type="text/css" href="../demo.css">

    <script type="text/javascript" src="../../jquery.min.js"></script>

    <script type="text/javascript" src="../../jquery.easyui.min.js"></script>

</head>

<body>

    <h2>Row Editing in DataGrid</h2>

    <p>Click the row to start editing.</p>

    <div style="margin:20px 0;"></div>

    

    <table id="dg" class="easyui-datagrid" title="Row Editing in DataGrid" style="width:700px;height:auto"

            data-options="

                iconCls: 'icon-edit',

                singleSelect: true,

                toolbar: '#tb',

                url: 'datagrid_data1.json',

                method: 'get',

                onClickCell: onClickCell,

                onEndEdit: onEndEdit

            ">

        <thead>

            <tr>

                <th data-options="field:'itemid',width:80">Item ID</th>

                <th data-options="field:'productid',width:100,

                        formatter:function(value,row){

                            return row.productname;

                        },

                        editor:{

                            type:'combobox',

                            options:{

                                valueField:'productid',

                                textField:'productname',

                                method:'get',

                                url:'products.json',

                                required:true

                            }

                        }">Product</th>

                <th data-options="field:'listprice',width:80,align:'right',editor:{type:'numberbox',options:{precision:2}}">List Price</th>

                <th data-options="field:'unitcost',width:80,align:'right',editor:{type:'numberbox',options:{precision:2}}">Unit Cost</th>

                <th data-options="field:'attr1',width:250,editor:'textbox'">Attribute</th>

                <th data-options="field:'status',width:60,align:'center',editor:{type:'checkbox',options:{on:'P',off:''}}">Status</th>

            </tr>

        </thead>

    </table>

 

    <div id="tb" style="height:auto">

        <a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true" onclick="append()">Append</a>

        <a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true" onclick="removeit()">Remove</a>

        <a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-save',plain:true" onclick="acceptit()">Accept</a>

        <a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-undo',plain:true" onclick="reject()">Reject</a>

        <a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true" onclick="getChanges()">GetChanges</a>

    </div>

    

    <script type="text/javascript">

        var editIndex = undefined;

        function endEditing(){

            if (editIndex == undefined){return true}

            if ($('#dg').datagrid('validateRow', editIndex)){

                $('#dg').datagrid('endEdit', editIndex);

                editIndex = undefined;

                return true;

            } else {

                return false;

            }

        }

        function onClickCell(index, field){

            if (editIndex != index){

                if (endEditing()){

                    $('#dg').datagrid('selectRow', index)

                            .datagrid('beginEdit', index);

                    var ed = $('#dg').datagrid('getEditor', {index:index,field:field});

                    if (ed){

                        ($(ed.target).data('textbox') ? $(ed.target).textbox('textbox') : $(ed.target)).focus();

                    }

                    editIndex = index;

                } else {

                    setTimeout(function(){

                        $('#dg').datagrid('selectRow', editIndex);

                    },0);

                }

            }

        }

        function onEndEdit(index, row){

            var ed = $(this).datagrid('getEditor', {

                index: index,

                field: 'productid'

            });

            row.productname = $(ed.target).combobox('getText');

        }

        function append(){

            if (endEditing()){

                $('#dg').datagrid('appendRow',{status:'P'});

                editIndex = $('#dg').datagrid('getRows').length-1;

                $('#dg').datagrid('selectRow', editIndex)

                        .datagrid('beginEdit', editIndex);

            }

        }

        function removeit(){

            if (editIndex == undefined){return}

            $('#dg').datagrid('cancelEdit', editIndex)

                    .datagrid('deleteRow', editIndex);

            editIndex = undefined;

        }

        function acceptit(){

            if (endEditing()){

                $('#dg').datagrid('acceptChanges');

            }

        }

        function reject(){

            $('#dg').datagrid('rejectChanges');

            editIndex = undefined;

        }

        function getChanges(){

            var rows = $('#dg').datagrid('getChanges');

            alert(rows.length+' rows are changed!');

        }

    </script>

</body>

</html>

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>Row Editing in DataGrid - jQuery EasyUI Demo</title>
  6. <linkrel="stylesheet"type="text/css"href="../../themes/default/easyui.css">
  7. <linkrel="stylesheet"type="text/css"href="../../themes/icon.css">
  8. <linkrel="stylesheet"type="text/css"href="../demo.css">
  9. <scripttype="text/javascript"src="../../jquery.min.js"></script>
  10. <scripttype="text/javascript"src="../../jquery.easyui.min.js"></script>
  11. </head>
  12. <body>
  13. <h2>Row Editing in DataGrid</h2>
  14. <p>Click the row to start editing.</p>
  15. <divstyle="margin:20px0;"></div>
  16. <tableid="dg"class="easyui-datagrid"title="Row Editing in DataGrid"style="width:700px;height:auto"
  17. data-options="
  18. iconCls: 'icon-edit',
  19. singleSelect: true,
  20. toolbar: '#tb',
  21. url: 'datagrid_data1.json',
  22. method: 'get',
  23. onClickCell: onClickCell,
  24. onEndEdit: onEndEdit
  25. ">
  26. <thead>
  27. <tr>
  28. <thdata-options="field:'itemid',width:80">Item ID</th>
  29. <thdata-options="field:'productid',width:100,
  30. formatter:function(value,row){
  31. return row.productname;
  32. },
  33. editor:{
  34. type:'combobox',
  35. options:{
  36. valueField:'productid',
  37. textField:'productname',
  38. method:'get',
  39. url:'products.json',
  40. required:true
  41. }
  42. }">Product</th>
  43. <thdata-options="field:'listprice',width:80,align:'right',editor:{type:'numberbox',options:{precision:2}}">List Price</th>
  44. <thdata-options="field:'unitcost',width:80,align:'right',editor:{type:'numberbox',options:{precision:2}}">Unit Cost</th>
  45. <thdata-options="field:'attr1',width:250,editor:'textbox'">Attribute</th>
  46. <thdata-options="field:'status',width:60,align:'center',editor:{type:'checkbox',options:{on:'P',off:''}}">Status</th>
  47. </tr>
  48. </thead>
  49. </table>
  50.  
  51. <divid="tb"style="height:auto">
  52. <ahref="javascript:void(0)"class="easyui-linkbutton"data-options="iconCls:'icon-add',plain:true"onclick="append()">Append</a>
  53. <ahref="javascript:void(0)"class="easyui-linkbutton"data-options="iconCls:'icon-remove',plain:true"onclick="removeit()">Remove</a>
  54. <ahref="javascript:void(0)"class="easyui-linkbutton"data-options="iconCls:'icon-save',plain:true"onclick="acceptit()">Accept</a>
  55. <ahref="javascript:void(0)"class="easyui-linkbutton"data-options="iconCls:'icon-undo',plain:true"onclick="reject()">Reject</a>
  56. <ahref="javascript:void(0)"class="easyui-linkbutton"data-options="iconCls:'icon-search',plain:true"onclick="getChanges()">GetChanges</a>
  57. </div>
  58. <scripttype="text/javascript">
  59. var editIndex =undefined;
  60. function endEditing(){
  61. if(editIndex ==undefined){returntrue}
  62. if($('#dg').datagrid('validateRow', editIndex)){
  63. $('#dg').datagrid('endEdit', editIndex);
  64. editIndex =undefined;
  65. returntrue;
  66. }else{
  67. returnfalse;
  68. }
  69. }
  70. function onClickCell(index, field){
  71. if(editIndex != index){
  72. if(endEditing()){
  73. $('#dg').datagrid('selectRow', index)
  74. .datagrid('beginEdit', index);
  75. var ed = $('#dg').datagrid('getEditor',{index:index,field:field});
  76. if(ed){
  77. ($(ed.target).data('textbox')? $(ed.target).textbox('textbox'): $(ed.target)).focus();
  78. }
  79. editIndex = index;
  80. }else{
  81. setTimeout(function(){
  82. $('#dg').datagrid('selectRow', editIndex);
  83. },0);
  84. }
  85. }
  86. }
  87. function onEndEdit(index, row){
  88. var ed = $(this).datagrid('getEditor',{
  89. index: index,
  90. field:'productid'
  91. });
  92. row.productname = $(ed.target).combobox('getText');
  93. }
  94. function append(){
  95. if(endEditing()){
  96. $('#dg').datagrid('appendRow',{status:'P'});
  97. editIndex = $('#dg').datagrid('getRows').length-1;
  98. $('#dg').datagrid('selectRow', editIndex)
  99. .datagrid('beginEdit', editIndex);
  100. }
  101. }
  102. function removeit(){
  103. if(editIndex ==undefined){return}
  104. $('#dg').datagrid('cancelEdit', editIndex)
  105. .datagrid('deleteRow', editIndex);
  106. editIndex =undefined;
  107. }
  108. function acceptit(){
  109. if(endEditing()){
  110. $('#dg').datagrid('acceptChanges');
  111. }
  112. }
  113. function reject(){
  114. $('#dg').datagrid('rejectChanges');
  115. editIndex =undefined;
  116. }
  117. function getChanges(){
  118. var rows = $('#dg').datagrid('getChanges');
  119. alert(rows.length+' rows are changed!');
  120. }
  121. </script>
  122. </body>
  123. </html>
posted @ 2020-02-29 07:59  新云优  阅读(177)  评论(0编辑  收藏  举报