天天看点

坑之easyui数据表格(daagird)rows参数

rows是datagird的固定参数

看下图:

坑之easyui数据表格(daagird)rows参数

由于我没有使用分页,所以

total

NaN

这里采用的原生

Servlet

+

JDBC

完成的宿舍管理系统中的其中一小点功能。

下面开始入坑:

1. 前端数据表格是这样的:

<script type="text/javascript">
	$(function() {
		$('#dg').datagrid({
			title : "宿舍成员信息",
			iconCls : "icon-more",
			rownumbers : "true",
			idField : 'sid',
			loadMsg : '数据正在加载,小伙伴耐心等待哦!!',
			striped : "true",
			fitColumns : "true",
			url : "getStudentByHid",
			columns:[
				[
					{field:'sid', title:'学号', width:'80', resizable:'false'},
					{field:'sname', title:'姓名', width:'80', resizable:'false'},
					{field:'scollege', title:'所在学院', width:'80', resizable:'false'},
					{field:'hid', title:'寝室编号', width:'80', resizable:'false'},
					{field:'ssex', title:'性别', width:'80', resizable:'false'},
					{field:'sage', title:'年龄', width:'80', resizable:'false'},
					{field:'saddress', title:'家庭地址', width:'180', resizable:'false'},
					{field:'sphone', title:'联系电话', width:'140', resizable:'false'}
				]
			],
			onLoadSuccess : function(data) {
				console.log(data);
			}
		});
	})
</script>
<table id="dg" class="easyui-datagrid" cellspacing="0" cellpadding="0"></table>
           

这里没什么,注意一点L就是

field

字段不要写错了。

这里打印的

data

是这样的:

坑之easyui数据表格(daagird)rows参数

因为除了管理员就两个同学在一起住。

2. Controller层

StudentSelectService sss=new StudentSelectService();
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	resp.setCharacterEncoding("utf8");
	HttpSession session=req.getSession();		
	UserModel user=(UserModel)session.getAttribute("usermodel");
	int hid = user.getHid();
	JSONObject stuList = sss.getStuByHid(hid);
	PrintWriter pw=resp.getWriter();
	pw.write(stuList.toString());
}
           

解释:

  第一句设置字符编码。

  第二句构建Session对象

  第三句获取session中的登录用户。

  第四句获取学生的宿舍号。

  第五句通过宿舍号获取学生集合并转为JSON对象

  然后写到前端。

这里后台打印的

stuList

数据是这样的:

{
	"rows":[
		{
			"hid":11001,
			"saddress":"湖南",
			"sage":21,
			"scollege":"信息工程学院",
			"sid":1000,
			"sname":"猪八戒",
			"sphone":"15588887777",
			"spower":0,
			"spwt":"",
			"ssex":"女"
		},{
			"hid":11001,
			"saddress":"上海",
			"sage":22,
			"scollege":"信息工程学院",
			"sid":1005,
			"sname":"唐僧",
			"sphone":"18811114444",
			"spower":0,
			"spwt":"",
			"ssex":"男"
		}
	]
}
           

因为

"spower"

"spwt"

两个字段没有查。所以没有数据。

3. Service层

StudentSelectDao sd = new StudentSelectDao();
public JSONObject getStuByHid(int hid) {
	JSONObject jObject = new JSONObject();
	jObject.put("rows", sd.getStuByHid(hid));
	return jObject;
}
           

解释:

  通过hid查询到一个学生集合放到JSONObject中返回。

  就这里。

rows

我刚开始写的是

studentList

,导致

datagird

获取不到数据。

  报错:

Unable to get property 'length' of undefined or null reference
           

4. Dao层也贴上吧。反正也没用

public List<UserModel> getStuByHid(int hid) {
	List<UserModel> list = new ArrayList<>();
	String sql="select sid,sname,scollege,ssex,sage,hid,sphone,saddress from user where spower=1 and hid=?";
	Connection con=null;
	try {
		con=JdbcUtil.getDBConnection();
		PreparedStatement pst = con.prepareStatement(sql);
		pst.setInt(1, hid);
		ResultSet rs = pst.executeQuery();
		while (rs.next()) {
			UserModel user=new UserModel(rs.getInt("sid"),rs.getString("sname"),rs.getString("scollege"),rs.getString("ssex"),rs.getInt("sage"),rs.getInt("hid"),rs.getString("sphone"),rs.getString("saddress"));
			list.add(user);
		}
	} catch (SQLException e) {
		e.printStackTrace();
	}finally {
		JdbcUtil.closedConnection(con);
	}
	return list;
}
           

没了。

继续阅读