关于这个问题,曾经借鉴过很多,但是都不理想。加上最近项目需要使用这个技术,就自己整理了一下,并成功实现。好了,废话不多说,直接给大家上代码参考吧。
里边加了许多自己项目ztree的判断,请自行略过。
<script type="text/javascript">
$obj = $("#remark_dg");
var indexs;
$obj.datagrid({
url:'<%=path%>/mbFlup/fetchCycByMbId.do',
columns: [[ //显示的列
{
field: 'ID',
title: '编号',
width: 100,
sortable: true,
checkbox: true
},
{
field: 'FLUP_TIMES',
title: '次数',
width: 100,
sortable: true,
editor: {
type: 'validatebox',
options: {
}
}
},
{
field: 'FLUP_INTERVAL',
title: '出院后天数',
width: 100,
editor: {
type: 'validatebox',
options: {
}
}
},
{
field: 'FLUP_FREQUENCY',
title: '随访频率',
width: 100,
editor: {
type: 'validatebox',
options: {
}
}
}]],
toolbar:'#tb', //表格菜单
fit:true,
fitColumns:true,
loadMsg:'加载中...', //加载提示
rownumbers:true, //显示行号列
singleSelect:true,//是允许选择一行
onClickCell: onClickCell,
queryParams:{ //在请求数据是发送的额外参数,如果没有则不用写
},
onLoadSuccess:function(data){
},
rowStyler:function(index,row){
}
});
//可编辑行
var editIndex = undefined;
function endEditing(){
if (editIndex == undefined){return true}
if ($('#remark_dg').datagrid('validateRow', editIndex)){
$('#remark_dg').datagrid('endEdit', editIndex);
editIndex = undefined;
return true;
} else {
return false;
}
}
//修改的方式是直接点击单元格,所以table要加上onClickCell属性,然后重写onClickCell方法
function onClickCell(index, field){
if (editIndex != index){
if (endEditing()){
$('#remark_dg').datagrid('selectRow', index)
.datagrid('beginEdit', index);
var ed = $('#remark_dg').datagrid('getEditor', {index:index,field:field});
($(ed.target).data('textbox') ? $(ed.target).textbox('textbox') : $(ed.target)).focus();
editIndex = index;
} else {
$('#remark_dg').datagrid('selectRow', editIndex);
}
}
}
// 添加
function addRemark(){
if (endEditing()){
$('#remark_dg').datagrid('appendRow',{status:'P'});
editIndex = $('#remark_dg').datagrid('getRows').length-1;
$('#remark_dg').datagrid('selectRow', editIndex)
.datagrid('beginEdit', editIndex);
}
}
// 删除
function removeit(){
$.messager.confirm('Confirm','确认删除?',function(r){
if (r){
var row = $('#remark_dg').datagrid('getSelected');
var rindex = $('#remark_dg').datagrid('getRowIndex', row);
//alert(rindex);
//$obj.datagrid('deleteRow', rindex);
$.ajax({
url : '<%=path%>/mbFlup/deleteFlupCycle.do',
type : 'POST',
timeout : 60000,
success : function(data) {
var msg = '删除';
if (data) {
$obj.datagrid('deleteRow', rindex);
//$obj.datagrid('reload');
$.messager.alert('提示', msg + '成功!', 'info', function() {
//window.location.href = root + 'esbService/initSysConfig.do';
});
} else {
$.messager.alert('提示', msg + '失败!', 'error', function() {
//window.location.href = root + 'esbService/initSysConfig.do';
});
}
}
});
}
});
}
// 保存方法(添加修改用了一个方法accept())
function accept(){
if (endEditing()){
var row = $('#remark_dg').datagrid('getSelected');
var FLUP_TIMES = row.FLUP_TIMES;
var FLUP_INTERVAL = row.FLUP_INTERVAL;
var FLUP_FREQUENCY=row.FLUP_FREQUENCY;
var id=row.ID;
var mbid=$("#mbid").val();
if(mbid!='')
{
if(FLUP_TIMES!='' ||FLUP_INTERVAL!=''||FLUP_FREQUENCY!='')
{
$.ajax({
url:"<%=path%>/mbFlup/saveFlupCycle.do",
type:"post",
dataType:"json",
data:{
id:id,
times:FLUP_TIMES,
interval:FLUP_INTERVAL,
frequency:FLUP_FREQUENCY,
mbid:mbid
},
success:function(data){
alert(data)
if(data){
$.messager.show({
title : '提示',
msg : '操作成功'
});
$('#remark_dg').datagrid('load', {});
$('#list_sfsqKs').datagrid('reload',{code:code});
}else{
$.messager.show({
title : '提示',
msg : '操作失败,请联系管理员 ------'
});
}
},
error:function(){
$.messager.show({
title : '提示',
msg : '系统错误,请联系管理员------'
});
}
});
}else{
$.messager.alert('操作提示','请添加随访周期!');
}
}else{
$.messager.alert('操作提示','请选择左侧模板!');
}
}
}
function saveConten(){
var mbid=$("#mbid").val();
var content=$("#content").val();
var xx = $('#tb input[name="x"]:checked').val();
$.ajax({
url:"<%=path%>/mbFlup/updateMbTname.do",
type:"post",
dataType:"json",
data:{
mbid:mbid,
content:content,
xx:xx
},
success:function(data){
var treeObj = $.fn.zTree.getZTreeObj("z_tree"); //参数为树的id
var nodes = treeObj.getSelectedNodes();
//判断选中的是否为子节点
//若为父节点flag = true
if(nodes.length > 0){
var flag = nodes[0].isParent;
if(flag == true){
$.messager.show({
title : '提示',
msg : '父节点不能保存 ------'
});
}else{
$.messager.show({
title : '提示',
msg : '操作成功'
});
}
}
},
error:function(){
$.messager.show({
title : '提示',
msg : '系统错误,请联系管理员------'
});
}
});
}
script>
<table id="remark_dg">table>