在做itoo成绩的时候,有个需求是教师判分,学生成绩有两部分组成:平时成绩和期末成绩,然后根据两种成绩比例算出总成绩。现在是有了平时成绩和成绩比例,输入期末成绩,计算出总成绩,并且把输入的期末成绩和计算的总成绩更新到数据库中。主要应用了单击单元格进行编辑,编辑完成之后,失去焦点则保存数据。如果数据没有变化,失去焦点则不更新数据库。
页面效果是这样的:
期末成绩的单元格是可以编辑的:
输入数据,并失去焦点之后:
如何实现的:
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”,这样才可以执行下面的方法)
这样就可以实现了单元格编辑保存的效果了。