easyui-datagrid 编辑单元格

          在做itoo成绩的时候,有个需求是教师判分,学生成绩有两部分组成:平时成绩和期末成绩,然后根据两种成绩比例算出总成绩。现在是有了平时成绩和成绩比例,输入期末成绩,计算出总成绩,并且把输入的期末成绩和计算的总成绩更新到数据库中。主要应用了单击单元格进行编辑,编辑完成之后,失去焦点则保存数据。如果数据没有变化,失去焦点则不更新数据库。

         页面效果是这样的:

easyui-datagrid 编辑单元格_第1张图片

期末成绩的单元格是可以编辑的:


输入数据,并失去焦点之后:

easyui-datagrid 编辑单元格_第2张图片


如何实现的:

html:

生成easyUI-datagrid表格的js:

$('#dg').datagrid({    
	    url:'${pageContext.request.contextPath}/queryStudentAnswer', 
	    queryParams:{"schoolcalendarId":termId},
	    onClickCell: onClickCell,
	    onAfterEdit:onAfterEdit,
	    rownumbers:true,
	    pagination:'true',
	    fitColumns:'true',
	    singleSelect:'true',
	    columns:[[    
	       /*  {field:'ck',checkbox:true},    */ 
	        {field:'id',hidden:true},    
	        {field:'studentId',hidden:true},    
	        {field:'resultId',hidden:true},    
	        {field:'daliyResultRate',hidden:true},    
	        {field:'daliyResult',hidden:true},    
	        {field:'code',width:30,align:'center',title:'学号'},  
	        {field:'name',width:30,align:'center',title:'姓名'},   
	        {field:'teachClassName',width:30,align:'center',title:'班级'}  , 
	        {field:'questionTime',width:40,align:'center',title:'留作业时间'},   
	        {field:'questionName',width:50,align:'center',title:'作业名称'},   
	        {field:'answerName',width:50,align:'center',title:'答案名称'},   
	        {field:'preview',width:30,align:'center',title:'预览',formatter: function (value, row, index) { return preview(value, row, index)}} ,  
	        {field:'finalRate',width:30,align:'center',title:'期末成绩比例'} ,  
	        {field:'finalResult',editor:'text',width:30,align:'center',title:'期末成绩'} ,  
	        {field:'totalResult',width:30,align:'center',title:'总分'} 
	    ]]    
	}); 
(注意期末成绩这个字段的“editor”属性应该设置成“text”,这样才可以执行下面的方法)

单击单元格和失去焦点,提交数据的js:


特别注意的是单元格的"beginEdit"和"endEdit"方法调用的时机。

这样就可以实现了单元格编辑保存的效果了。

你可能感兴趣的:(java)