jQuery EasyUI教程之datagrid應用(一)


最近一段時間都在做人事系統的項目,主要用到了EasyUI,數據庫操作,然后抽點時間整理一下EasyUI的內容。

這里我們就以一個簡潔的電話簿軟件為基礎,具體地說一下datagrid應用吧

 

datagrid就是一個表格,那我們怎么讓數據庫中的數據顯示在其中呢?

 

第一步:各種配置這肯定不用說,你要想正常的應用一款軟件就需要加載配置,這里我們不做詳細說明 ;

第二步:配置加載完畢,我們就需要寫方法調用數據庫來獲取數據了, 

    1.最底層的方法也就是Dao了 ,我們需要獲取所有的聯系人信息,

    2.這里我們定義兩個共用方法來初始化Hibernate和最后的釋放資源

    

public class PhoneDAO {

     List<Deal> list = null ;
      private SessionFactory sf = null ;
      private Session se = null ;
      private Transaction ts = null ;
      Configuration cfg = null;
      ServiceRegistry sr = null ;
       //在測試用例方法被執行之前自動執行的方法
        //一般用來初始化對象
       public  PhoneDAO() {
             //1獲取配置文件 
                  cfg = new Configuration().configure() ;
                          
                 //2注冊配置  
                  sr = new StandardServiceRegistryBuilder().
                                                            applySettings(cfg.getProperties()).build();
                       
        }
          public void init ()
        {
              try{
             
             //3獲取SessionFactory
             sf = cfg.buildSessionFactory(sr) ;
       
              }catch(Exception e)
              {
                 
                  //1獲取配置文件 
                  cfg = new Configuration().configure() ;
                          
                 //2注冊配置  
                  sr = new StandardServiceRegistryBuilder().
                                                            applySettings(cfg.getProperties()).build();
                //3獲取SessionFactory
                     sf = cfg.buildSessionFactory(sr) ;
               
              }
              
              //4產生Session
                 se =sf.openSession() ;
                         
                 //5啟動事務
                 ts = se.beginTransaction() ;
        }

    

    //后置對象
          //用來釋放資源
          public void destroy()
          {
              try
              {
                    //7提交數據
                   ts.commit();
              }catch(Exception e)
              {
                  cfg = new Configuration().configure() ;
                  
                     //2注冊配置  
                      sr = new StandardServiceRegistryBuilder().
                                                                applySettings(cfg.getProperties()).build();
                    //3獲取SessionFactory
                         sf = cfg.buildSessionFactory(sr) ;
                         //4產生Session
                         se =sf.openSession() ;
                                 
                         //5啟動事務
                         ts = se.beginTransaction() ;
                  ts.commit();
              }
              //8釋放資源
              se.close();
              sf.close(); //關閉,釋放資源
           }
}

    3.之后我們寫入查詢的方法

//查詢聯系人
      public List<Phone> showAll()
      {
          init() ;
          List<Phone> list = null ;
          
          list = se.createQuery("from Phone").list() ;
          
          destroy();
          
          return list;
      }

這里我們就獲得了所有聯系人列表

第三步:這里我們定義了一個json封裝的泛型實體類,用來包裝並返回json格式

package p_phone;


import java.util.ArrayList;
import java.util.List;

/**
 * @author Administrator
 *封裝類
 *通過泛型封裝JSON的結果數據
 *total 初始化為0
 *rows為List集合的泛型
 */
 
/*
 * 該類為封裝JSON的結果數據集,
 * 所以兩個變量的名字要對應JSON的格式
 * 並且為了簡便省去拼接,我們定義row為List的集合
 */

public class PageJSON<T> {

    private int total = 0 ;//定義total並初始化
    
    private List<T> rows = new ArrayList<T>() ;//定義List集合的泛型

    /*
     * setting 、getting  方法
     */
    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public List<T> getRows() {
        return rows;
    }

    public void setRows(List<T> rows) {
        this.rows = rows;
    }
    
    
}

  下面的是實體類

package p_phone;
// Generated 2016-12-14 14:17:07 by Hibernate Tools 3.4.0.CR1

import java.util.Date;

/**
 * Phone generated by hbm2java
 */
public class Phone implements java.io.Serializable {

    private String PNumber;
    private String PName;
    private Date PBirthday;
    private String PRemark;

    public Phone() {
    }

    public Phone(String PNumber, String PName, Date PBirthday) {
        this.PNumber = PNumber;
        this.PName = PName;
        this.PBirthday = PBirthday;
    }

    public Phone(String PNumber, String PName, Date PBirthday, String PRemark) {
        this.PNumber = PNumber;
        this.PName = PName;
        this.PBirthday = PBirthday;
        this.PRemark = PRemark;
    }

    public String getPNumber() {
        return this.PNumber;
    }

    public void setPNumber(String PNumber) {
        this.PNumber = PNumber;
    }

    public String getPName() {
        return this.PName;
    }

    public void setPName(String PName) {
        this.PName = PName;
    }

    public Date getPBirthday() {
        return this.PBirthday;
    }

    public void setPBirthday(Date PBirthday) {
        this.PBirthday = PBirthday;
    }

    public String getPRemark() {
        return this.PRemark;
    }

    public void setPRemark(String PRemark) {
        this.PRemark = PRemark;
    }

}

之后在service層中我們寫一個方法返回json類型的所有聯系人列表

public String getPageJSON()
    {
        String rtn = "{\"total\":0,\"rows\":[ ]}";//定義變量並初始化JSON格式的結果集
        
        PageJSON<Phone> pjson = new PageJSON<Phone>() ;//封裝Rate類
        
        List<Phone> list = new PhoneDAO().showAll() ;//定義List集合並賦值
            
        String json_list = JSONArray.toJSONString(list) ; //將List集合轉為JSON集合
        System.out.println(json_list);
            /*
             * 通過set方法給實例化的對象賦值
             */
        pjson.setRows(list); 
        pjson.setTotal(2);
            
        rtn = JSONArray.toJSONString(pjson) ; //將對象JSON類型的數組
        
        return rtn ; //返回JSON類型的結果集
    }

第四步:到這里已經接近尾聲了,我們再寫一個Servlet,將數據傳遞到頁面,重寫doGet方法

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //轉碼
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html");
        
        String json_list = new PhoneService().getPageJSON() ;
        
        response.getWriter().write(json_list) ;
        
    }

第五步:也就是最后一步了,我們怎么讓它顯示到頁面上呢?上面我們在Servlet中已經將獲取到的json類型的所有聯系人寫到了網頁上,之后我們在頁面獲取就好了

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>聯系人</title>
<!-- 1    jQuery的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.min.js"></script>

<!-- 2    css資源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/default/easyui.css">

<!-- 3    圖標資源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/icon.css"> 

<!-- 4    EasyUI的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.easyui.min.js"></script>
 
<!-- 5    本地語言 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/locale/easyui-lang-zh_CN.js"></script>

</head>
<body>
<script type="text/javascript">
$(function(){
    
    $("#dg").datagrid({
        url:'SelectPhone' ,
        idField:'pNumber',
        columns:[[    
                  {field:'pName',title:'姓名',width:100},    
                  {field:'pNumber',title:'電話',width:100},    
                  {field:'pBirthday',title:'生日',width:100,align:'right'},   
                  {field:'pRemark',title:'備注',width:100,align:'right'}
              ]] 
    }) ;
    
    
})
</script>
<table id="dg"></table> 
</body>
</html>

到這里就全部完成了,運行一下,看看效果

是不是將數據庫的內容顯示到網頁上了,雖然樣式不太好看,但是別着急我們一步一步慢慢來,

上面也說到了,樣式不好看,那我們能不能改呢,當然能,datagrid為我們提供了方法,稍加修改,頁面變成了下面的樣子

修改下之前的代碼:

columns:[[    
                  {field:'pName',title:'姓名',width:100,align:'center'},    
                  {field:'pNumber',title:'電話',width:100,align:'center'},    
                  {field:'pBirthday',title:'生日',width:100,align:'right',align:'center'},   
                  {field:'pRemark',title:'備注',width:100,align:'right',align:'center'}
              ]],
              pagination:true,//分頁
              fitColumns:true,//列自適應寬度
              rownumbers:true,//顯示行號
              striped:true,//斑馬線
              singleSelect:false,//是否單選

現在在頁面上我們看到了分頁,這是因為我們開啟了分頁功能,

 

想了解分頁功能請點擊鏈接 :jQuery EasyUI教程之datagrid應用(二)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM