datagrid通過點擊觸發可編輯框

  1. var $obj;  
  2. $(function() {  
  3.     $obj = $("#configQueryGrid");  
  4.     $obj.datagrid({  
  5.         loadMsg : '數據加載中請稍後……',  
  6.         url : root + 'esbService/sysConfigQuery.do',  
  7.         //url : root + 'js/app/sysManagement/sysConfig.json',  
  8.         fitColumns : true,  
  9.         autoRowHeight : true,  
  10.         pagination : true,  
  11.         pagePosition : 'bottom',  
  12.         pageSize : 10,  
  13.         toolbar: '#configTb',  
  14.         pageList : [ 10, 20, 30 ],  
  15.         border : false,  
  16.         singleSelect:true,  
  17.         idField:'id',  
  18.         columns : [ [ {  
  19.                 field : 'id',  
  20.                 title : 'ID',  
  21.                 hidden : true  
  22.             },{  
  23.                 field : 'configName',  
  24.                 title : "標識",  
  25.                 width : 200,  
  26.                 editor : 'text',  
  27.                 sortable : true  
  28.             }, {  
  29.                 field : 'configNameCn',  
  30.                 title : "名稱",  
  31.                 editor : 'text',  
  32.                 width : 200,  
  33.                 sortable : true  
  34.             }, {  
  35.                 field : 'configType',  
  36.                 title : "類型",  
  37.                 editor : 'text',  
  38.                 width : 200,  
  39.                 sortable : true  
  40.             }, {  
  41.                 field : 'configValue',  
  42.                 title : "值",  
  43.                 editor : 'text',  
  44.                 width : 200,  
  45.                 sortable : true  
  46.             }, {  
  47.                 field : 'opt',  
  48.                 title : "詳情",  
  49.                 width : 150,  
  50.                 align : 'center',  
  51.                 formatter:function(value,row,index){  
  52.                     if (row.editing){  
  53.                         var s = '<a href="#" class="ope-save" onclick="saverow('+index+',this)">保存</a> ';  
  54.                         var c = '<a href="#" class="ope-cancel" onclick="cancelrow('+index+',this)">取消</a>';  
  55.                         return s+c;  
  56.                     } else {  
  57.                         var e = '<a href="#" class="ope-edit" onclick="editrow('+index+',this)">修改</a> ';  
  58.                         var d = '<a href="#" class="ope-remove" onclick="deleterow('+index+',this)">刪除</a>';  
  59.                         return e+d;  
  60.                     }  
  61.                 }  
  62.         } ] ],  
  63.         onLoadSuccess : function(data) {  
  64.   
  65.         },  
  66.         onBeforeEdit:function(index,row){  
  67.             row.editing = true;  
  68.             $obj.datagrid('refreshRow', index);  
  69.         },  
  70.         onAfterEdit:function(index,row){  
  71.             row.editing = false;  
  72.             $obj.datagrid('refreshRow', index);  
  73.         },  
  74.         onCancelEdit:function(index,row){  
  75.             row.editing = false;  
  76.             $obj.datagrid('refreshRow', index);  
  77.         }  
  78.     });  
  79.   
  80. });  
  81.   
  82.     function selectCurRow(obj){  
  83.         var $a = $(obj);  
  84.         var $tr = $a.parent().parent().parent();  
  85.         var tmpId = $tr.find("td:eq(0)").text();  
  86.         $obj.datagrid('selectRecord', tmpId);  
  87.     }  
  88.       
  89.     function getIndexAfterDel(){  
  90.         var selected = $obj.datagrid('getSelected');  
  91.         var index = $obj.datagrid('getRowIndex', selected);  
  92.         return index;  
  93.     }  
  94.       
  95.     function editrow(index,obj){  
  96.         selectCurRow(obj);  
  97.           
  98.         var tmpIndex = getIndexAfterDel();    
  99.         $obj.datagrid('beginEdit', tmpIndex);  
  100.     }  
  101.       
  102.     function deleterow(index,obj){  
  103.         $.messager.confirm('Confirm','確認刪除?',function(r){  
  104.             if (r){               
  105.                 selectCurRow(obj);  
  106.                 var index = getIndexAfterDel();  
  107.                 var node = $obj.datagrid('getSelected');  
  108.                 var id = node.id;   
  109.                 $.ajax({  
  110.                     url : root + 'esbService/removeSysConfig.do?id='+id,  
  111.                     type : 'GET',                     
  112.                     timeout : 60000,  
  113.                     success : function(data, textStatus, jqXHR) {     
  114.                         var msg = '刪除';  
  115.                         if(data == 'pageData') {  
  116.                             $obj.datagrid('deleteRow', index);  
  117.                             return;  
  118.                         }else if (data == "success") {  
  119.                             $obj.datagrid('deleteRow', index);  
  120.                             //$obj.datagrid('reload');  
  121.                             $.messager.alert('提示', msg + '成功!', 'info', function() {  
  122.                                 //window.location.href = root + 'esbService/initSysConfig.do';  
  123.                             });  
  124.                         } else {  
  125.                             $.messager.alert('提示', msg + '失敗!', 'error', function() {  
  126.                                 //window.location.href = root + 'esbService/initSysConfig.do';  
  127.                             });  
  128.                         }  
  129.                     }  
  130.                 });   
  131.                   
  132.             }  
  133.         });  
  134.     }  
  135.     function saverow(index,obj){  
  136.         selectCurRow(obj);  
  137.         var tmpIndex = getIndexAfterDel();    
  138.         $obj.datagrid('endEdit', tmpIndex);  
  139.         var node = $obj.datagrid('getSelected');  
  140.         //var data = JSON.stringify(node);  
  141.         var json = {};  
  142.         json.id = node.id;  
  143.         json.configName = node.configName;  
  144.         json.configNameCn = node.configNameCn;  
  145.         json.configType   = node.configType;  
  146.         json.configValue  = node.configValue;  
  147.         $.ajax({  
  148.             url : root + 'esbService/editOrSaveSysConfig.do',  
  149.             type : 'POST',  
  150.             data : json,  
  151.             timeout : 60000,  
  152.             success : function(data, textStatus, jqXHR) {     
  153.                 var msg = '';  
  154.                 if (data == "success") {  
  155.                     $.messager.alert('提示', '保存成功!', 'info', function() {  
  156.                         $obj.datagrid('refreshRow', tmpIndex);  
  157.                     });  
  158.                 } else{  
  159.                     if(data == "illegal"){  
  160.                         msg = "請輸入數據!";  
  161.                     }else if(data == "duplicate"){  
  162.                         msg = "該標識已存在!";  
  163.                     }else{  
  164.                         msg = "保存失敗!";  
  165.                     }  
  166.                     $.messager.alert('提示', msg , 'error', function() {  
  167.                         $obj.datagrid('beginEdit', tmpIndex);  
  168.                     });  
  169.                 }                     
  170.   
  171.             }  
  172.         });  
  173.           
  174.     }  
  175.     function cancelrow(index,obj){  
  176.         selectCurRow(obj);  
  177.         var tmpIndex = getIndexAfterDel();    
  178.         $obj.datagrid('cancelEdit', tmpIndex);  
  179.     }  
  180.       
  181.     function appendRow(){  
  182.         $obj.datagrid('appendRow',{  
  183.             id: new Date().getTime(),  
  184.             configName: '',  
  185.             configNameCn: "",  
  186.             configType: "",  
  187.             configValue:"",  
  188.             opt:""  
  189.         });  
  190.           
  191.         var length = $obj.datagrid("getRows").length;  
  192.         if(length > 0){  
  193.             editIndex = length - 1;  
  194.         }else{  
  195.             editIndex = 0;  
  196.         }         
  197.         //$obj.datagrid("selectRow", editIndex);  
  198.         $obj.datagrid("beginEdit", editIndex);  
  199.     } 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章