flexigrid随手记

时间:2022-07-23 20:34:18

最近要用到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 这两个变量判断来决定输出结果