JQueryMiniUI按照時間進行查詢的實現方法,jqueryminiui查詢
考核的事情已經變成了上一年了,當時要做一個圖書管理系統,但是當時因為在按照時間進行搜尋的時候,無法將前台的資料傳遞到後台,所以失去了一部分,現在重看,其實也不過爾爾,反而然我有一種只是當時枉然的意味。好了,那麼如何將前台的時間資料傳遞到後台,其實如果是普通的傳遞倒也是無所謂的,因為有特殊的功能是在搜尋的時候實現
所以要在載入頁面的時候傳遞資料,jQuery-MINI UI如何?:
其實我們要要做的事情是將資料顯示到表格中,那麼我們就要看一開始是如何?的:
前台千篇一律如此:
<div id="datagrid1" class="mini-datagrid" style="width: 1000px; height: 280px;" url="../index?method=listAll" idField="id" multiSelect="true" sizeList="[5,10,15]" pageSize="10" > <div property="columns"> <div type="checkcolumn"></div> <div type="indexcolumn">序號</div> <div field="bookGuid" width="60" headerAlign="center" allowSort="true">圖書編號</div> <div field="bookName" width="60" headerAlign="center" allowSort="true">圖書名稱</div> <div field="bookType" class="mini-combobox" width="60" renderer="onTypeRenderer">圖書類別</div> <div field="suitable" width="60" renderer="onSuitRenderer">適合人群</div> <div field="buyDate" width="150" headerAlign="center" dateFormat="yyyy-MM-dd HH:mm:ss" allowSort="true">入庫日期</div> <div field="count" width="60" style="color:red">借閱次數</div> <div field="remark" width="60" style="color:red">備忘</div> <div name="action" width="120" headerAlign="center" align="center" renderer="onActionRenderer" cellStyle="padding:0;">操作</div> </div> </div>
上面是我們的表格顯示的內容,mini-ui在頁面進行載入的時候就會初始化表格所以說在div中我們有一個url屬性,也就是告訴我們資料的來源
url="../index?method=listAll"
在頁面進行載入的時候回調用listAll這個方法,我們進行搜尋的時候也會去調用這個方法,但是我們會傳遞資料到後台
那麼在js重我們該如何編寫,首先我們來看看不需要傳遞資料到到後台,怎樣來載入這個表格
var grid = mini.get("datagrid1"); grid.load();
那麼我們在點擊搜尋的時候,是不是要進行傳遞資料到後台:
function search() { var type1 = mini.get("type1").getValue(); var date1=mini.get("date1").getValue(); var timestamp = Date.parse(date1); grid.load({ type1:type1, timestmp:timestamp }); }
按照上面我們就可以在背景listAll中對接收到的資料進行判斷,然後顯示對應的資料
這個地方有一個特點時間的傳遞並不是按照yyyy-MM-dd這種格式,而是利用時間戳記傳遞到後台,也就是說傳遞的是一個long類型是資料,我們來看一看後台是怎樣進行接收的
public void listAll(HttpServletRequest request, HttpServletResponse response) throws Exception{ String type=request.getParameter("type1"); String lstr=request.getParameter("timestmp"); long time=0; if(lstr!=null && isNumeric(lstr)){ time=Long.parseLong(lstr); } Date date1=new Date(); date1.setTime(time); Date date2=new Date(); date2.setTime(time+24*60*60*1000); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); String sql="select * from bookinfo"; if(type!= null && type.length()>0 && time==0) { sql="select * from bookinfo where booktype="+Integer.parseInt(type); } else if(time!=0 && type.length()==0) { sql ="select * from bookinfo where buydate between \""+ sdf.format(date1) +"\" and \""+sdf.format(date2)+"\""; } else if(time!=0 && type.length()>0) { sql ="select * from bookinfo where booktype="+Integer.parseInt(type)+" and buydate between \""+ sdf.format(date1) +"\" and \""+sdf.format(date2)+"\""; } else { sql ="select * from bookinfo"; } System.out.println(sql); //要知道的是聯集查詢中需要得到的List也是顯示出來的 List list=mdao.getList(sql); //實現的是分頁 int pageSize=Integer.parseInt(request.getParameter("pageSize")); int pageIndex=Integer.parseInt(request.getParameter("pageIndex")); List sub_list=new ArrayList<>(); int start=pageIndex*pageSize; for(int i=start;i<list.size() && i<start+pageSize;i++) { sub_list.add(list.get(i)); } String json=JsonUtil.listToJson(sub_list, "yyyy-MM-dd hh:mm:ss"); System.out.println(json); json=JsonData.modifyJson(json); json=json.replaceFirst("null", list.size()+""); response.getWriter().write(json); }
然後在後台將時間戳記轉換成為一定的格式,我們就可以在資料庫中戶進行搜尋了,還有的是sql語句中時間兩邊是要加上雙引號的。
總之,我們利用JQuerymini-ui在進行資料時間資料傳遞的時候,如果僅僅傳遞一個時間,那麼時間的格式並不是我們想要的那麼滿意,而且在後台我們要進行各種各樣的判斷,現在我們傳遞時間戳記會減少一些判斷,並且時間的格式也可以很容易的進行轉換。
以上這篇JQueryMiniUI按照時間進行查詢的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援幫客之家。