基于Struts2+Extjs3.0 實現簡單分頁
S1,首先要在GridPanel中添加PagingToolbar,它跟GridPanel只是包含的關系。本質上它們都共用一個JsonStore,從而產生聯系
bbar: new Ext.PagingToolbar({
pageSize: 2,
store: check_list_store,
displayInfo: true,
beforePageText:"第 ",
afterPageText:" 頁/共 {0} 頁",
displayMsg: '顯示從{0}條數據到{1}條數據,共{2}條數據',
emptyMsg: "沒有數據"
}) S2,JsonStore一定要指定記錄的總數目
var check_list_store = new Ext.data.JsonStore({
url: '<%=basePath%>check/check_list!list',
root: "rows",
totalProperty: 'totalCount',
idProperty: 'studentSubID',
remoteSort: true,
fields:["studentSubID",
"studentNumber",
"projectName",
"taskName",
"studentName",
"submitFile",
"submitFileName",
{name:"submitDate"},
"submitPass","submitScore","submitForUS"]
}); S3,用Firebug查看,你會發現Extjs會自動向服務器POST兩個參數,不錯這兩個參數就是表示顯示當前第start條開始,當前頁有limit條數據!所以我們只要在服務器端接收這兩個數據,并且返回相應的JSON數據就可以了!
private Map session;
public Map getSession() {
return session;
}
public void setSession(Map session) {
this.session = session;
}
//分頁
private String limit;
private String start;
public String getLimit() {
return limit;
}
public void setLimit(String limit) {
this.limit = limit;
}
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
private Map responseJson;
public Map getResponseJson() {
return responseJson;
}
public void setResponseJson(Map responseJson) {
this.responseJson = responseJson;
}
// SERVICE
public CheckPagingService checkPagingService;
public CheckPagingService getCheckPagingService() {
return checkPagingService;
}
@Resource(name = "checkPagingService")
public void setCheckPagingService(CheckPagingService checkPagingService) {
this.checkPagingService = checkPagingService;
}
// 返回JSON 用到的MAP LIST
Map<String, Object> map = new HashMap<String, Object>();
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
public String list() throws Exception {
//通過教師 學生提交列表
String number = (String) getSession().get("number");
int count =checkPagingService.getCountOfStudentSubByTeacher(number);
List<studentsub>studentSubList=checkPagingService.getPagingStudentSubByTeacher(number
, getStart()==null?0:Integer.valueOf(getStart()), getLimit()==null?2:Integer.valueOf(getLimit()));
if (studentSubList != null) {
for (StudentSub ss : studentSubList) {
Map<string, object=""> m = new HashMap<string, object="">();
m.put("studentSubID", ss.getStudentSubID());
m.put("studentNumber", ss.getStudent().getNumber());
m.put("studentName", ss.getStudent().getStudentName());
m.put("projectName", ss.getTask().getProject().getProjectName());
m.put("taskName", ss.getTask().getTaskName());
m.put("submitFileName", ss.getFileName());
m.put("submitFile", ss.getFileSrc());
m.put("submitDate", ss.getSubDate());
// 是否審核 評分 ,被展示
m.put("submitPass", ss.getIsPass());
m.put("submitScore", String.valueOf(ss.getScore()));
m.put("submitForUS", ss.getIsForUS());
list.add(m);
}
}
map.put("totalCount",count);
map.put("rows", list);
this.setResponseJson(map);
return "list";
}
Service層
public List<StudentSub> getPagingStudentSubByTeacher(final String number,final int index, final int pageSize)throws Exception{
return getStudentSubDAO().getPagingStudentSubByTeacher(number, index, pageSize);
}
DAO層
public List<StudentSub> getPagingStudentSubByTeacher(final String number,final int index,
final int pageSize){
List resultList=this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,SQLException {
Query q=s.createQuery("from StudentSub ss where ss.task.project.teacher
.number="+number+"order by ss.isPass asc");
q.setFirstResult(index);
q.setMaxResults(pageSize);
List list=q.list();
return list;
}
});
return resultList;
} 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!