最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于jQuery ligerUI實(shí)現(xiàn)分頁(yè)樣式

 更新時(shí)間:2016年09月18日 14:38:45   作者:pokid  
這篇文章主要為大家詳細(xì)介紹了基于jQuery ligerUI實(shí)現(xiàn)分頁(yè)樣式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在公司實(shí)習(xí)看到公司框架里使用了ligerUI的grid進(jìn)行分頁(yè),個(gè)人感覺(jué)挺好用的,自己摸索著實(shí)現(xiàn)了一遍記錄下來(lái) 

簡(jiǎn)單來(lái)說(shuō),liger grid 就是提交準(zhǔn)備好的數(shù)據(jù)到指定的目標(biāo)請(qǐng)求數(shù)據(jù),拿到數(shù)據(jù)以后,顯示出來(lái)(通過(guò)ajax實(shí)現(xiàn))。 

ligerGrid是ligerui系列插件的核心控件,用戶(hù)可以快速地創(chuàng)建一個(gè)美觀,而且功能強(qiáng)大的表格,支持排序、分頁(yè)、多表頭、固定列等等。 

這里只實(shí)現(xiàn)基于ligerUI的分頁(yè) 

LigerUI的分頁(yè)方式有兩種:localserver。

如果數(shù)據(jù)量不是很大,就直接采用local分頁(yè),一次性的把數(shù)據(jù)全部發(fā)送到前臺(tái)來(lái),之后LigerUI自身的grid會(huì)自動(dòng)分頁(yè)。說(shuō)一下 total,在后臺(tái)傳送jsonString時(shí)傳送定義好的total(總條數(shù)),你可以定義多少都可以,但是到前臺(tái)它會(huì)自動(dòng)將總條數(shù)賦值給total, 這是local下的方式。 

而如果數(shù)據(jù)量很大,一次性加載直接不顯示數(shù)據(jù)或反應(yīng)很慢的,就需要用server分頁(yè)了,當(dāng)用server分頁(yè)時(shí),每次請(qǐng)求都會(huì)比local時(shí)多發(fā)送兩個(gè)參數(shù):page和pagesize,不需要自己去發(fā)送,只需要在后臺(tái)獲取就行。 

int page=Integer.parseInt(request.getParameter("page")); 
int pagesize=Integer.parseInt(request.getParameter("pagesize")); 
int total; 

這時(shí)你可以把page和pagesize寫(xiě)進(jìn)你的sql語(yǔ)句: 
sql="........."; 
sql+=" limit "+(page*pagesize-pagesize)+","+pagesize; 

這樣查出的結(jié)果放入jsonString中,這里要注意total了,total需要自己定義,需要自己重新查一下結(jié)果的總條數(shù)后賦值給total傳到頁(yè)面,其他的LigerUI會(huì)幫你搞定! 

關(guān)于更多的ligerUI grid參官網(wǎng)考API  http://api.ligerui.com/?to=grid
關(guān)于選擇前端分頁(yè)還是后臺(tái)分頁(yè)參考http://m.fzitv.net/article/86326.htm

local實(shí)現(xiàn)只需要將查詢(xún)的數(shù)據(jù)全部提交到前端框架會(huì)自動(dòng)幫你實(shí)現(xiàn)分頁(yè),但是我個(gè)人并不提倡進(jìn)行客戶(hù)端分頁(yè),Web應(yīng)用服務(wù)器和客戶(hù)端之間是網(wǎng)絡(luò),如果網(wǎng)絡(luò)傳遞的數(shù)據(jù)量越少,則客戶(hù)端獲得響應(yīng)的速度越快.而且一般來(lái)說(shuō),數(shù)據(jù)庫(kù)服務(wù)器和Web應(yīng)用服務(wù)器的處理能力一般比客戶(hù)端要強(qiáng)很多.從這兩點(diǎn)來(lái)看,在客戶(hù)端分頁(yè)的方案是最不可取的 

下面上server端分頁(yè)代碼:

由于只使用了分頁(yè)所以只導(dǎo)入了部分插件和圖片

 

引入需要的jquery,liger和css 

<link href="js/ligerui-all.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery-3.0.0.js"></script>
<script type="text/javascript" src="js/ligerui.all.js"></script> 


jsp中樣例如下:在ligerGrid中需要指定dataAction(默認(rèn)是local),請(qǐng)求的url,page和pageSize,其中page和pageSize可以在后臺(tái)獲取 

<script type="text/javascript" >
$(function(){

 var grid = $("#maingrid").ligerGrid({
  columns: [
  { name: 'id', display: '序號(hào)',
   render:function(record, rowindex, value, column){
    return rowindex+1;

   }

  },

  { name: 'title', display: '標(biāo)題'}
  ],
  height:210,
  dataAction:"server",
  url:"LUServlet",
  page:"1",
  pageSize:"5"

  });

});
</script>
</head>
<body>
<div style="width:600px">
<div id="maingrid"></div>
</div>

model類(lèi)和測(cè)試數(shù)據(jù)庫(kù) 

//為了省事用sql.Date
import java.sql.Date;
public class Blog {
 private int id;
 private int category_id;
 private String title;
 private String content;
 private Date created_time;
 //getter和setter方法
 @Override
 public String toString() {
  return "Blog [id=" + id + ", category_id=" + category_id + ", title=" + title + ", content=" + content
    + ", created_time=" + created_time + "]";
 }
 
}

dao類(lèi),用jdbc測(cè)試 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import model.Blog;

public class MysqlTest {
 PreparedStatement ps = null;
 ResultSet rs = null;
 Connection connect = null;

 public MysqlTest() {
  try {
   Class.forName("com.mysql.jdbc.Driver");
   connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/blogs_stu", "root", "");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 //返回一個(gè)Blog數(shù)組,用于拼接json字符串
 //不用model時(shí)可以直接在此處拼接json字符串返回
 //傳入page和pagesize用于判斷最后一頁(yè)數(shù)組長(zhǎng)度,否則會(huì)報(bào)錯(cuò)
 public Blog[] getInfo(String sql,int page,int pagesize) {
  int total=getTotal();
  if(page*pagesize>=total){
   pagesize=total%pagesize;
  }
  Blog[] blog = new Blog[pagesize];
  try {
   ps = connect.prepareStatement(sql);
   rs = ps.executeQuery();
   int index=0;
   while (rs.next()) {
    blog[index]=new Blog();
    blog[index].setId(rs.getInt("id"));
    blog[index].setCategory_id(rs.getInt("category_id"));
    blog[index].setTitle(rs.getString("title"));
    blog[index].setContent(rs.getString("content"));
    blog[index].setCreated_time(rs.getDate("created_time"));
    index++;
   }
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   if (connect != null)
    try {
     connect.close();
     ps.close();
     rs.close();
    } catch (SQLException e) {
     e.printStackTrace();
    }
  }
  return blog;
 }
 //獲取總記錄數(shù)total
 public int getTotal(){
  int total=0;
  String sql="";
   try {
    sql="select count(id) from blog";
    ps = connect.prepareStatement(sql);
    rs = ps.executeQuery();
    while(rs.next()){
    total=rs.getInt(1);
    }
   } catch (SQLException e) {
    e.printStackTrace();
   }
   return total;
  }
}

后臺(tái)servlet實(shí)現(xiàn) 

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.Blog;
import mysqljdbc.MysqlTest;

@WebServlet("/LUServlet")
public class LUServlet extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  request.setCharacterEncoding("utf-8");
  response.setContentType("text/html; charset=utf-8");
  //獲取頁(yè)面的page和pagesize,拼接sql用
  int page=Integer.valueOf(request.getParameter("page"));
  int pagesize=Integer.valueOf(request.getParameter("pagesize"));
  
  MysqlTest test=new MysqlTest();
  //在拼接json字符串是傳給前臺(tái)一個(gè)total記錄總數(shù),ligerUI grid會(huì)自動(dòng)獲取該total
  int total=test.getTotal();
  request.setAttribute("total", total);
  //用的mysql,查找限定條數(shù)語(yǔ)句用limit,從page*pagesize-pagesize開(kāi)始,取pagesize條
  String sql="select * from blog";
  sql+=" limit "+(page*pagesize-pagesize)+","+pagesize;
  Blog[] blog=test.getInfo(sql,page,pagesize);
  //將數(shù)據(jù)拼接成json字符串
  StringBuffer strbuffer=new StringBuffer();
  //ligerUI grid接受的json格式是{"Rows":[],"Total":""}
  strbuffer.append("{\"Rows\":[");
  for(int i=0;i<blog.length;i++){
   strbuffer.append("{\"title\":").append("\"" + blog[i].getTitle() + "\"},");
  }
  strbuffer.replace(strbuffer.length()-1, strbuffer.length(), "");
  strbuffer.append("],").append("\"Total\":").append("\""+total+"\"").append("}");
  PrintWriter out=response.getWriter();
  out.write(strbuffer.toString());
  out.close();
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  doGet(request,response);
 }
}

運(yùn)行結(jié)果(默認(rèn)樣式可以改,具體參照l(shuí)igerUI API):

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

双牌县| 合川市| 法库县| 竹山县| 肇庆市| 张家口市| 峡江县| 水富县| 阿克苏市| 德江县| 新丰县| 松原市| 凌海市| 拜城县| 平塘县| 贺兰县| 蕲春县| 安溪县| 禹城市| 巴楚县| 景德镇市| 泸州市| 雷波县| 囊谦县| 报价| 大同县| 星子县| 策勒县| 兴城市| 林西县| 青阳县| 湖南省| 陵水| 邯郸县| 温宿县| 泊头市| 尉犁县| 陇西县| 湄潭县| 章丘市| 恩平市|