easyui datagrid 编辑表格datetimebox

1 今天用easyui datagrid 编辑表格,行编辑操作,遇到一个问题,行编辑器自带的日期编辑器,在选中修改时,行的数据渲染出错,导致选中的行数据回显不出来。

2 于是,我就到网上拜访各位大拿前辈的解决之道,看到有位大拿之前也遇到了类似的问题,他给出了自己的解决方法;可参考他的文章:关于EasyUI DataGrid行编辑时嵌入时间控件 不知道是不是easyui版本问题,我坚持把他帖子读完(挺长的,还是需要耐心的),并试图尝试用他的方法来解决我的问题。最终还是无果。

最终,我试了一种比较偏的方法解决了问题。

3 方法:easyui datagrid 编辑表格datetimebox在编辑回显数据时,因为后台返回给日期编辑框的值是时间戳,就是当前日期的一串毫秒数;esayui的core代码会有一个pase函数,里面有一行是拿到这个value,做split("  ")操作,因为你给的值是number类型,没有split方法,所以报错。我就尝试如下方法,即在后台返回之前把时间类型的字段值转换成字符串,问题居然得以解决。日期控件上渲染数据时,也不用再通过Date的format函数转换成我们看得懂的日期了,因为后台返回的就是日期字符串。

问题得以解决,但是时间也花费了大半天。。。。。。干程序的真NM伤不起呀!!。。

代码如下,希望能给遇到同样问题的童鞋一些帮助,我也就知足了^**^

 5 easyui 编辑表格怎么用?官方文档上有的;下面附上小编的编辑修改逻辑

//---------add shop sale----------
	var editIndex = undefined;
	function endEditing(){
		if (editIndex == undefined){return true}
		if ($('#customList').datagrid('validateRow', editIndex)){
			var ed = $('#customList').datagrid('getEditor', {index:editIndex,field:'stylenumCode'});
			var stylenumName = $(ed.target).combobox('getText');
			$('#customList').datagrid('getRows')[editIndex]['stylenumName'] = stylenumName;
			$('#customList').datagrid('endEdit', editIndex); 
			editIndex = undefined;
			return true;
		} else {
			return false;
		}
	}
	function onClickRow(index){
		if (editIndex != index){
			if (endEditing()){
				$('#customList').datagrid('selectRow', index).datagrid('beginEdit', index);
				editIndex = index;
			} else {
				$('#customList').datagrid('selectRow', editIndex);
			}
		}
	}
	function append(){
		if (endEditing()){
			$('#customList').datagrid('appendRow',{states:'P',date:'new Date()'});
			editIndex = $('#customList').datagrid('getRows').length-1;
			$('#customList').datagrid('selectRow', editIndex)
					.datagrid('beginEdit', editIndex);
		}
	}
	function removeit(){
		if (editIndex == undefined){return}
		$('#customList').datagrid('cancelEdit', editIndex)
				.datagrid('deleteRow', editIndex);
		editIndex = undefined;
	}
	function custom_add(){
		if (endEditing()){
			$('#customList').datagrid('acceptChanges');
			//接下来执行:onAfterEdit
			
		}
	}
	
	function onAfterEdit(rowIndex, rowData, changes){
		/* if(rowData['id']){//修改
			if(changes && 'undefined' != changes){
				
			}
		}else{ *///新增
			if(rowData['ma100'] != '' || rowData['ma110'] != '' || rowData['ma120'] != '' || rowData['ma130'] != ''
				|| rowData['ma140'] != '' || rowData['ma150'] != ''){
				
				rowData['totalPiece'] = Number(rowData['ma100']) + Number(rowData['ma110']) + Number(rowData['ma120']) + Number(rowData['ma130']) + Number(rowData['ma140']) + Number(rowData['ma150']);
				
				if(rowData['ltNumPrice'] != ''){
					rowData['totalMoney'] = rowData['totalPiece']*rowData['ltNumPrice'];
				}
				//设置修改后的总件数和总金额
				/* $('#customList').datagrid('beginEdit', rowIndex);
				var ed = $('#customList').datagrid('getEditor', {index:rowIndex,field:'totalPiece'});
				$(ed.target).numberbox('setValue',rowData['totalPiece']);
				ed = $('#customList').datagrid('getEditor', {index:rowIndex,field:'totalMoney'}).target;
				$(ed).numberbox('setValue',rowData['totalMoney']);
				$('#customList').datagrid('endEdit', rowIndex); */
			}
			
			if(rowData['ma160'] != '' || rowData['ma170'] != '' || rowData['ma180'] != '' || rowData['ma190'] != ''){
				 var gtNums = Number(rowData['ma160']) + Number(rowData['ma170']) + Number(rowData['ma180']) + Number(rowData['ma190']);
				 rowData['totalPiece'] += gtNums;
				 if(rowData['gtNumPrice'] != ''){
					rowData['totalMoney'] += gtNums*rowData['gtNumPrice'];
				}
			}
			console.log('totalPiece='+rowData['totalPiece']);
			console.log('totalMoney='+rowData['totalMoney']);
			rowData['afterSubsidyMoney'] = Number(rowData['afterSubsidyMoney']);
			$.post("custom/insertorupdate",rowData, function(data){
				if(data.status == 200){
					$.messager.alert('提示','更新门店销售成功!');
					$("#customList").datagrid("reload");
				}else{
					$.messager.alert('提示',data.msg);
				}
				editIndex = undefined;
			});
		//}
	}

只是初步研究,还望感兴趣的童鞋一起交流学习!!!~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lixiaotao_1

谢谢老板!~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值