datagrid之查询

本期内容:完善上期内容,点击菜单栏跳转表格数据控件界面

一、datagrid的初步使用及链式编程结果类封装

1、点击人员信息维护,右侧Tab页显示书籍相关信息

思路:

        ①、要有一个存放书籍信息的展示页面

        ②、点击左侧菜单,显示对应页面

在js文件中改变跳转路径

content:'<iframe width="100%" height="100%" src="'+node.attributes.self.menuURL+'"></iframe>',

2、加入数据表格控件

根据帮助包写一个界面jsp与js,同时把数据导入:

Jsp主界面:

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>存放书籍页面</title>

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/js/jquery-easyui-1.5.1/themes/default/easyui.css">   

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/js/jquery-easyui-1.5.1/themes/icon.css">   

<script type="text/javascript" src="${pageContext.request.contextPath}/static/js/jquery-easyui-1.5.1/jquery.min.js"></script>   

<script type="text/javascript" src="${pageContext.request.contextPath}/static/js/jquery-easyui-1.5.1/jquery.easyui.min.js"></script> 

<script type="text/javascript" src="${pageContext.request.contextPath}/static/js/book.js"></script>   

</head>

<body>

<input type="hidden" id="ctx" value="${pageContext.request.contextPath}">

<table id="dg">

</table>

</body>

</html>

Js文件:由于数据路劲与js文件不在一个包内,转换路劲需要加“/”

$(function(){

$('#dg').datagrid({    

    url:$("#ctx").val()+'/datagrid_data1.json',    

    columns:[[    

        {field:'productid',title:'id',width:100},    

        {field:'productname',title:'名称',width:100},    

        {field:'unitcost',title:'价格',width:100,align:'right'}    

    ]]    

});  

})

最终结果:

 

3、引入datagrid数据表格,以死数据的方式先引入进去

4、造数据

①、写一个与数据库对应的属性的类

②、在BookDao类写入得到数据的方法

public List<Book> list(Book book, PageBean pageBean) throws Exception {

String bname=book.getBname();

String sql="select * from t_mvc_book where 1=1";

if(StringUtils.isNotBlank(bname)) {

sql+=" and bname like '%"+bname+"%'";

}

return super.executeQuery(sql, Book.class, pageBean);

}

③、写子控制器BookAction

package lv.com.web;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.fasterxml.jackson.databind.ObjectMapper;

import com.zking.framework.ActionSupport;

import com.zking.framework.ModelDriver;

import com.zking.util.PageBean;

import com.zking.util.ResponseUtil;

import lv.com.dao.BookDao;

import lv.com.entity.Book;

public class BookAction extends ActionSupport implements ModelDriver<Book>{

private Book book=new Book();

private BookDao bookDao=new BookDao();

@Override

public Book getModel() {

// TODO Auto-generated method stub

return book;

}

public String datagrid(HttpServletRequest req, HttpServletResponse resp) {

BookDao bookDao=new BookDao();

PageBean pageBean=new PageBean();

try {

List<Book> list = bookDao.list(new Book(), new PageBean());

ObjectMapper om=new ObjectMapper();

Map<String, Object> map=new HashMap<String, Object>();

map.put("total", pageBean.getTotal());

map.put("rows", list);

ResponseUtil.writeJson(resp, map);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

}

④、添加配置

 <action path="/book" type="lv.com.web.BookAction">    

  </action>

⑤、在js中改变路径与属性

$(function(){

$('#dg').datagrid({    

    url:$("#ctx").val()+'/book.action?methodName=datagrid',    

    columns:[[    

        {field:'id',title:'id',width:100},    

        {field:'bname',title:'名称',width:100},    

        {field:'price',title:'价格',width:100,align:'right'}    

    ]]    

});  

})

5、分页

在easyui中,点击下一页上一页等默认的分页效果,携带的参数是page/rows

在bootstrap中,点击下一页上一页等默认的分页效果,携带的参数是page/offset

 在js中添加分页方法

 

$(function(){
    $('#dg').datagrid({    
        url:$("#ctx").val()+'/book.action?methodName=datagrid',    
        pagination:true,
        columns:[[    
            {field:'bid',title:'id',width:100},    
            {field:'bname',title:'名称',width:100},    
            {field:'price',title:'价格',width:100,align:'right'}    
        ]]    
    });  

})

同时要在BookAction中的datagrid加入PageBean分页初始化

pageBean.setRequest(req);

6、创建一个工具类R,简约代码

package com.zking.util;

import java.util.HashMap;

public class R extends HashMap{

public R data(String key,Object value) {

this.put(key, value);

return this;

}

}

链式编程:

ResponseUtil.writeJson(resp, new R()

.data("total",pageBean.getTotal())

.data("rows", list));

相当于↓代码:

Map<String, Object> map=new HashMap<String, Object>();

map.put("total", pageBean.getTotal());

map.put("rows", list);

二、查询

填充,使数据填充界面:

fitColumns:true,

绑定数据

toolbar:'#tb',

主界面添加查询的样式:

<div id="tb">

    <input class="easyui-textbox" id="bname" name="bname" style="width:20%;padding-left: 10px" data-options="label:'书名:',required:true">

    <a id="btn-search" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'">搜索</a>

</div>

使用参数查询数据:

$("#btn-search").click(function(){

$('#dg').datagrid('load', {    

    bname: $("#bname").val()    

});

});

最终结果:

 期待下次的完善~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值