Files
OFD/WebContent/view/studentList.jsp
2026-03-18 10:19:33 +08:00

557 lines
21 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<meta charset="UTF-8">
<title>学生列表</title>
<link rel="stylesheet" type="text/css" href="static/easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="static/easyui/themes/icon.css">
<link rel="stylesheet" type="text/css" href="static/easyui/css/demo.css">
<script type="text/javascript" src="static/easyui/jquery.min.js"></script>
<script type="text/javascript" src="static/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="static/easyui/js/validateExtends.js"></script>
<script type="text/javascript">
$(function() {
//datagrid初始化
$('#dataList').datagrid({
title:'学生列表',
iconCls:'icon-more',//图标
border: true,
collapsible:false,//是否可折叠的
fit: true,//自动大小
method: "post",
url:"StudentServlet?method=StudentList&t="+new Date().getTime(),
idField:'studentId',
singleSelect:false,//是否单选
pagination:true,//分页控件
rownumbers:true,//行号
sortName:'studentId',
sortOrder:'DESC',
remoteSort: false,
columns: [[
{field:'chk',checkbox: true,width:50},
{field:'studentId',title:'ID',width:50, sortable: true},
{field:'number',title:'学号',width:150, sortable: true},
{field:'name',title:'姓名',width:80},
{field:'sex',title:'性别',width:50,
formatter: function(value,row,index){
if (row.sex == '0') {
return '男';
}
return '女';
}
},
{field:'phone',title:'联系方式',width:120},
{field:'birthday',title:'生日',width:130},
{field:'major',title:'专业',width:100},
{field:'honor',title:'荣誉',width:150},
{field:'scoreNow',title:'本周学分',width:80},
{field:'clazzId',title:'班级',width:130,
formatter: function(value,row,index){
if (row.clazzId){
var clazzList = $("#clazzList").combobox("getData");
for(var i=0;i<clazzList.length;i++ ){
if(row.clazzId == clazzList[i].id)return clazzList[i].clazzName;
}
return row.clazzId;
} else {
return 'not found';
}
}
},
]],
toolbar: "#toolbar",
onBeforeLoad : function(){
try{
$("#clazzList").combobox("getData")
}catch(err){
preLoadClazz();
}
}
});
//设置分页控件
var p = $('#dataList').datagrid('getPager');
$(p).pagination({
pageSize: 10,//每页显示的记录条数默认为10
pageList: [10,20,30,50,100],//可以设置每页记录条数的列表
beforePageText: '第',//页数文本框前显示的汉字
afterPageText: '页 共 {pages} 页',
displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录',
});
//设置工具类按钮
$("#add").click(function(){
$("#addDialog").dialog("open");
});
//修改
$("#edit").click(function(){
var selectRows = $("#dataList").datagrid("getSelections");
if(selectRows.length != 1){
$.messager.alert("消息提醒", "请选择一条数据进行操作!", "warning");
} else{
$("#editDialog").dialog("open");
}
});
//删除
$("#delete").click(function(){
var selectRows = $("#dataList").datagrid("getSelections");
var selectLength = selectRows.length;
if(selectLength == 0){
$.messager.alert("消息提醒", "请选择数据进行删除!", "warning");
} else{
var numbers = [];
$(selectRows).each(function(i, row){
numbers[i] = row.sn;
});
var studentIds = [];
$(selectRows).each(function(i, row){
studentIds[i] = row.studentId;
});
var userIds = [];
$(selectRows).each(function(i, row){
userIds[i] = row.userId;
});
$.messager.confirm("消息提醒", "将删除与学生相关的所有数据(包括成绩),确认继续?", function(r){
if(r){
$.ajax({
type: "post",
url: "StudentServlet?method=DeleteStudent",
data: {userIds: userIds, studentIds: studentIds},
success: function(msg){
if(msg == "success"){
$.messager.alert("消息提醒","删除成功!","info");
//刷新表格
$("#dataList").datagrid("reload");
$("#dataList").datagrid("uncheckAll");
} else{
$.messager.alert("消息提醒","删除失败!","warning");
return;
}
}
});
}
});
}
});
function preLoadClazz(){
$("#clazzList").combobox({
width: "150",
height: "25",
valueField: "id",
textField: "clazzName",
multiple: false, //可多选
editable: false, //不可编辑
method: "post",
url: "ClazzServlet?method=getClazzList&t="+new Date().getTime()+"&from=combox",
onChange: function(newValue, oldValue){
}
});
}
//下拉框通用属性
$("#add_clazzList, #edit_clazzList").combobox({
width: "200",
height: "30",
valueField: "id",
textField: "clazzName",
multiple: false, //可多选
editable: false, //不可编辑
method: "post",
});
$("#add_clazzList").combobox({
url: "ClazzServlet?method=getClazzList&t="+new Date().getTime()+"&from=combox",
onLoadSuccess: function(){
//默认选择第一条数据
var data = $(this).combobox("getData");;
$(this).combobox("setValue", data[0].id);
}
});
$("#edit_clazzList").combobox({
url: "ClazzServlet?method=getClazzList&t="+new Date().getTime()+"&from=combox",
onLoadSuccess: function(){
//默认选择第一条数据
var data = $(this).combobox("getData");
$(this).combobox("setValue", data[0].id);
}
});
//设置添加学生窗口
$("#addDialog").dialog({
title: "添加学生",
width: 650,
height: 460,
iconCls: "icon-add",
modal: true,
collapsible: false,
minimizable: false,
maximizable: false,
draggable: true,
closed: true,
buttons: [
{
text:'添加',
plain: true,
iconCls:'icon-user_add',
handler:function(){
var validate = $("#addForm").form("validate");
if(!validate){
$.messager.alert("消息提醒","请检查你输入的数据!","warning");
return;
} else{
var clazzid = $("#add_clazzList").combobox("getValue");
$.ajax({
type: "post",
url: "StudentServlet?method=AddStudent",
data: $("#addForm").serialize(),
success: function(msg){
if(msg == "success"){
$.messager.alert("消息提醒","添加成功!","info");
//关闭窗口
$("#addDialog").dialog("close");
//清空原表格数据
$("#add_name").textbox('setValue', "");
$("#add_sex").textbox('setValue', "男");
$("#add_userName").textbox('setValue', "");
$("#add_number").textbox('setValue', "");
$("#add_phone").textbox('setValue', "");
$("#add_clazzList").textbox('setValue', "");
$("#add_major").textbox('setValue', "");
$("#add_honor").textbox('setValue', "");
$("#add_birthday").textbox('setValue', "");
$("#add_scoreNow").textbox('setValue', "");
//重新刷新页面数据
$('#dataList').datagrid("options").queryParams = {clazzid: clazzid};
$('#dataList').datagrid("reload");
} else{
$.messager.alert("消息提醒","添加失败!","warning");
return;
}
}
});
}
}
},
{
text:'重置',
plain: true,
iconCls:'icon-reload',
handler:function(){
$("#add_name").textbox('setValue', "");
$("#add_sex").textbox('setValue', "男");
$("#add_userName").textbox('setValue', "");
$("#add_number").textbox('setValue', "");
$("#add_phone").textbox('setValue', "");
$("#add_clazzList").textbox('setValue', "");
$("#add_major").textbox('setValue', "");
$("#add_honor").textbox('setValue', "");
$("#add_birthday").textbox('setValue', "");
$("#add_scoreNow").textbox('setValue', "");
//重新加载班级
$("#add_gradeList").combobox("clear");
$("#add_gradeList").combobox("reload");
}
},
]
});
//设置编辑学生窗口
$("#editDialog").dialog({
title: "修改学生信息",
width: 650,
height: 460,
iconCls: "icon-edit",
modal: true,
collapsible: false,
minimizable: false,
maximizable: false,
draggable: true,
closed: true,
buttons: [
{
text:'提交',
plain: true,
iconCls:'icon-user_add',
handler:function(){
var validate = $("#editForm").form("validate");
var clazzid = $("#edit_clazzList").combobox("getValue");
if(!validate){
$.messager.alert("消息提醒","请检查你输入的数据!","warning");
return;
} else{
$.ajax({
type: "post",
url: "StudentServlet?method=EditStudent&t="+new Date().getTime(),
data: $("#editForm").serialize(),
success: function(msg){
if(msg == "success"){
$.messager.alert("消息提醒","更新成功!","info");
//关闭窗口
$("#editDialog").dialog("close");
//刷新表格
$('#dataList').datagrid("options").queryParams = {clazzid: clazzid};
$("#dataList").datagrid("reload");
$("#dataList").datagrid("uncheckAll");
} else{
$.messager.alert("消息提醒","更新失败!","warning");
return;
}
}
});
}
}
},
{
text:'重置',
plain: true,
iconCls:'icon-reload',
handler:function(){
$("#edit_name").textbox('setValue', "");
$("#edit_sex").textbox('setValue', "男");
$("#edit_userName").textbox('setValue', "");
$("#edit_number").textbox('setValue', "");
$("#edit_phone").textbox('setValue', "");
$("#edit_clazzList").textbox('setValue', "");
$("#edit_honor").textbox('setValue', "");
$("#edit_scoreNow").textbox('setValue', "");
//重新加载班级
$("#edit_gradeList").combobox("clear");
$("#edit_gradeList").combobox("reload");
}
}
],
onBeforeOpen: function(){
var selectRow = $("#dataList").datagrid("getSelected");
//设置值
$("#edit_name").textbox('setValue', selectRow.name);
$("#edit_userName").textbox('setValue', selectRow.userName);
$("#edit_phone").textbox('setValue', selectRow.phone);
$("#edit-studentId").val(selectRow.studentId);
$("#edit-userId").val(selectRow.userId);
$("#edit_number").textbox('setValue', selectRow.number);
$("#edit_scoreNow").textbox('setValue', selectRow.scoreNow);
$("#edit_honor").textbox('setValue', selectRow.honor);
var clazzid = selectRow.clazzId;
var sex = selectRow.sex;
setTimeout(function(){
$("#edit_clazzList").combobox('setValue', clazzid);
$("#edit_sex").combobox('setValue', sex);
}, 100);
}
});
//搜索按钮监听事件
$("#search-btn").click(function(){
$('#dataList').datagrid('load',{
studentName: $('#search_student_name').val(),
clazzId: $("#clazzList").combobox('getValue') == '' ? 0 : $("#clazzList").combobox('getValue')
});
});
//设置导入工具类按钮
$("#import").click(function(){
$("#importDialog").dialog("open");
});
//设置导入窗口
$("#importDialog").dialog({
title: "导入学生信息",
width: 450,
height: 150,
iconCls: "icon-add",
modal: true,
collapsible: false,
minimizable: false,
maximizable: false,
draggable: true,
closed: true,
buttons: [
{
text:'确认导入',
plain: true,
iconCls:'icon-book-add',
handler:function(){
var validate = $("#importForm").form("validate");
if(!validate){
$.messager.alert("消息提醒","请选择文件!","warning");
return;
} else{
importStudent();
$("#importDialog").dialog("close");
}
}
}
]
});
function importStudent(){
$("#importForm").submit();
$.messager.progress({text:'正在上传导入中...'});
var interval = setInterval(function(){
var message = $(window.frames["import_target"].document).find("#message").text();
if(message != null && message != ''){
$.messager.progress('close');
$.messager.alert("消息提醒",message,"info");
$('#dataList').datagrid("reload");
clearInterval(interval);
}
}, 1000)
}
//清空搜索条件
$("#clear-btn").click(function(){
$('#dataList').datagrid("reload",{});
$("#clazzList").combobox('clear');
$("#search_student_name").textbox('setValue', "");
});
});
</script>
<script type="text/javascript">
function myformatter(date){
var y = date.getFullYear();
var m = date.getMonth()+1;
var d = date.getDate();
return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);
}
function myparser(s){
if (!s) return new Date();
var ss = (s.split('-'));
var y = parseInt(ss[0],10);
var m = parseInt(ss[1],10);
var d = parseInt(ss[2],10);
if (!isNaN(y) && !isNaN(m) && !isNaN(d)){
return new Date(y,m-1,d);
} else {
return new Date();
}
}
</script>
</head>
<body>
<!-- 学生列表 -->
<table id="dataList" cellspacing="0" cellpadding="0">
</table>
<!-- 工具栏 -->
<div id="toolbar">
<c:if test="${roleCode == 'admin' || roleCode == 'teacher'}">
<div style="float: left;"><a id="add" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true">添加</a></div>
<div style="float: left;" class="datagrid-btn-separator"></div>
<div style="float: left;"><a id="edit" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true">修改</a></div>
<div style="float: left;" class="datagrid-btn-separator"></div>
<div style="float: left;"><a id="delete" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-some-delete',plain:true">删除</a></div>
<div style="float: left;" class="datagrid-btn-separator"></div>
<div style="float: left;"><a id="download" href="StudentServlet?method=DownLoad" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true">导入模板</a></div>
<div style="float: left;" class="datagrid-btn-separator"></div>
<div style="float: left;"><a id="import" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true">导入</a></div>
<div style="float: left;" class="datagrid-btn-separator"></div>
<div style="float: left;margin-top:4px;">&nbsp;&nbsp;姓名:<input id="search_student_name" class="easyui-textbox" name="search_student_name" /></div>
</c:if>
<div style="margin-left: 10px;margin-top:4px;" >&nbsp;&nbsp;班级:<input id="clazzList" class="easyui-textbox" name="clazz" />
<a id="search-btn" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true">搜索</a>
<a id="clear-btn" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true">清空搜索</a>
</div>
</div>
<!-- 添加学生窗口 -->
<div id="addDialog" style="padding: 10px">
<form id="addForm" method="post">
<table cellpadding="8" >
<tr>
<td>姓名:</td>
<td><input id="add_name" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="name" data-options="required:true, missingMessage:'请填写姓名'" /></td>
<td>性别:</td>
<td><select id="add_sex" class="easyui-combobox" data-options="required:true, missingMessage:'请选择性别',editable: false, panelHeight: 50, width: 60, height: 30" name="sex"><option value="0">男</option><option value="1">女</option></select></td>
</tr>
<tr>
<td>用户名:</td>
<td>
<input id="add_userName" class="easyui-textbox" style="width: 200px; height: 30px;" type="text" name="userName" data-options="required:true, missingMessage:'请输入用户名'" />
</td>
<td>联系方式:</td>
<td><input id="add_phone" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="phone" validType="mobile" /></td>
</tr>
<tr>
<td>学号:</td>
<td><input id="add_number" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="number" validType="number" data-options="required:true, missingMessage:'请输入学号'" /></td>
<td>班级:</td>
<td><input id="add_clazzList" style="width: 200px; height: 30px;" class="easyui-textbox" name="clazzId" data-options="required:true, missingMessage:'请选择班级'" /></td>
</tr>
<tr>
<td>专业:</td>
<td>
<input id="add_major" class="easyui-textbox" style="width: 200px; height: 30px;" type="text" name="major" data-options="required:true, missingMessage:'请输入专业'" />
</td>
<td>个人荣誉:</td>
<td><input id="add_honor" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="honor" /></td>
</tr>
<tr>
<td>生日:</td>
<td>
<input id="add_birthday" data-options="formatter:myformatter,parser:myparser" class="easyui-datebox" name="birthday" />
</td>
<td>本周学分:</td>
<td><input id="add_scoreNow" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="scoreNow" validType="number" data-options="required:true, missingMessage:'请输入本周学分'" /></td>
</tr>
</table>
</form>
</div>
<!-- 修改学生窗口 -->
<div id="editDialog" style="padding: 10px">
<form id="editForm" method="post">
<input type="hidden" name="userId" id="edit-userId">
<input type="hidden" name="studentId" id="edit-studentId">
<table cellpadding="8" >
<tr>
<td>姓名:</td>
<td><input id="edit_name" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="name" data-options="required:true, missingMessage:'请填写姓名'" /></td>
<td>性别:</td>
<td><select id="edit_sex" class="easyui-combobox" data-options="required:true, missingMessage:'请选择性别',editable: false, panelHeight: 50, width: 60, height: 30" name="sex"><option value="0">男</option><option value="1">女</option></select></td>
</tr>
<tr>
<td>用户名:</td>
<td>
<input id="edit_userName" class="easyui-textbox" style="width: 200px; height: 30px;" type="text" name="userName" data-options="required:true, missingMessage:'请输入用户名'" />
</td>
<td>联系方式:</td>
<td><input id="edit_phone" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="phone" validType="mobile" /></td>
</tr>
<tr>
<td>学号:</td>
<td><input id="edit_number" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="number" validType="number" data-options="required:true, missingMessage:'请输入学号'" /></td>
<td>班级:</td>
<td><input id="edit_clazzList" style="width: 200px; height: 30px;" class="easyui-textbox" name="clazzId" data-options="required:true, missingMessage:'请选择班级'" /></td>
</tr>
<tr>
<c:if test="${roleCode == 'admin' || roleCode == 'teacher'}">
<td>本周学分:</td>
<td><input id="edit_scoreNow" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="scoreNow" validType="number" data-options="required:true, missingMessage:'请输入本周学分'" /></td>
</c:if>
<td>个人荣誉:</td>
<td><input id="edit_honor" style="width: 200px; height: 30px;" class="easyui-textbox" type="text" name="honor" /></td>
</tr>
</table>
</form>
</div>
<!-- 导入数据窗口 -->
<div id="importDialog" style="padding: 10px">
<form id="importForm" method="post" enctype="multipart/form-data" action="StudentServlet?method=ImportStudent" target="import_target">
<table cellpadding="8" >
<tr>
<td>请选择文件:</td>
<td>
<input class="easyui-filebox" name="importStudent" data-options="required:true,min:0,precision:2, missingMessage:'请选择文件',prompt:'选择文件'" style="width:200px;">
</td>
</tr>
</table>
</form>
</div>
<!-- 提交表单处理iframe框架 -->
<iframe id="import_target" name="import_target"></iframe>
</body>
</html>