最近要用到flexigrid做表格,随手记一些知识点。
引入了两个jquery库(jquery.js和jquery-1.7.1.min.js),发生冲突,只保留一个
$("#gridTable").flexigrid({
url:'./jsp/manager/gridData.jsp',
dataType: 'json',
……
}
用另一个jsp文件引入数据,虽然不太明白jsonStr的格式为什么是这样的。。
for (int i = startRow;i<endRow;i++) { UserInfo user = UserInfoList.get(i); jsonStr+="{id:'"+user.getId()+"',cell:['"+user.getId()+"','"+user.getLevel()+"','"+user.getName()+"','"+user.getDept()+"','"+user.getOthers()+"']},"; } if(jsonStr != null && !jsonStr.equals("")){ jsonStr = jsonStr.substring(0,jsonStr.length()-1); } totalRows = UserInfoList.size(); String jsonData = "{page:"+page_no+", total:"+totalRows+", rows:["+jsonStr+"]}"; /* output the json data to show */ out.println(jsonData);
刚开始愚蠢的以为只要写了这两句代码sortname: "userid", sortorder: "asc", 表格输出结果就会按照账号id按升序排列。。
实际上,是要从数据库那边取数据时按照账号id升序的顺序取出,就好比这段代码:
/* Get users' information from usertable */
String sql = "select * from usertable order by "+sortname+" "+sortorder+" limit "+startRow+","+pagesize;
ResultSet rs2 = stmt2.executeQuery(sql);
不过排序最后是先从数据库取出数据,再使用的 java List 排序 Collections.sort()
还有搜索功能,以为只写了
searchitems : [
{display: '账号', name : 'userid', isdefault: true},
{display: '权限等级', name : 'level'},
{display: '姓名', name : 'username'},
{display: '部门', name : 'part'}
],
这些代码就可以按条件搜索了呢,其实这只是样式而已,还是要从数据库那里按条件搜索输出结果的,搜索最后是翻了一下别人的博客,发现可以在gridData.jsp中用这两句代码传值:
// 条件字段值ֵ
String query = new String(request.getParameter("query").getBytes("ISO8859-1"), "UTF-8");
// 条件字段
String qtype = request.getParameter("qtype");
然后根据query 和qtype 这两个变量判断来决定输出结果