gridx的使用,主要是绑定事件,给grid的pagination插件绑定事件。
效果如下:
<!DOCTYPE HTML> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'gridxTest.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <link rel="stylesheet" type="text/css" href="js/dijit/themes/claro/claro.css" /> <link rel="stylesheet" href="js/gridx/resources/claro/Gridx.css" /> <style type="text/css"> /*applied to a single gridx instance by ID*/ #gridContainer { width: 600px; height: 300px; } </style> <script type="text/javascript" src="js/dojo/dojo.js" djConfig="parseOnLoad:true"></script> <script type="text/javascript"> require([ "dojo/on", "gridx/Grid", "gridx/core/model/cache/Async", "gridx/modules/VirtualVScroller", "gridx/modules/ColumnResizer", "gridx/modules/extendedSelect/Row", "gridx/modules/SingleSort", "gridx/modules/RowHeader", "gridx/modules/IndirectSelect", "gridx/modules/Pagination", "gridx/modules/pagination/PaginationBar", "dojo/store/JsonRest", "dojo/data/ItemFileWriteStore", 'dojo/_base/lang', "dojo/domReady!" ], function(on, Grid, Cache, VirtualVScroller, ColumnResizer, SelectRow, SingleSort, RowHeader, IndirectSelect, Pagination, PaginationBar, Store, ItemFileWriteStore, lang){ //Create store here... //var store = new Store({ // target:"student/list" //}); var data = { identifier: "id", items: [] }; var data_list = [ { col1: "normal", col2: false, col3: 'But are not followed by two hexadecimal', col4: 29.91}, { col1: "important", col2: false, col3: 'Because a % sign always indicates', col4: 9.33}, { col1: "important", col2: false, col3: 'Signs can be selectively', col4: 19.34} ]; var rows = 60; for(var i = 0, l = data_list.length; i < rows; i++){ data.items.push(lang.mixin({ id: i+1 }, data_list[i%l])); } var store = new ItemFileWriteStore({ data: data }); var grid = new Grid({ store: store, cacheClass: Cache, structure:[ //{field:"id", name:"id", width:"50px"}, //{field:"name", name:"用户名", width:"50px"}, {'name': 'Column 1', 'field': 'id', 'width': '100px'}, {'name': 'Column 2', 'field': 'col2', 'width': '100px'}, {'name': 'Column 3', 'field': 'col3', 'width': '200px'}, {'name': 'Column 4', 'field': 'col4', 'width': '150px'} ], selectRowTriggerOnCell: true, modules: [ VirtualVScroller, ColumnResizer, SelectRow, SingleSort, RowHeader, IndirectSelect, Pagination, PaginationBar, ] }); grid.placeAt("gridContainer"); grid.startup(); //这段代码可行,但感觉方法不够合适 //grid.pagination.onSwitchPage = function(currentPage, originalPage){ // this.grid.paginationBar.refresh(); //} //console.log(grid); //on(grid, "switchPage", function(){ // alert("123456"); //}); //console.log(grid); //console.log(grid); //console.log("Pagination.grid::::::"+grid.pagination.grid); //grid.pagination.connect("onSwitchPage", function(){ // alert("5555555"); //}); //console.log(grid); //这段代码会好点,但是换成on的话就更好了 grid.pagination.connect(grid.pagination, "onSwitchPage", function(){ alert("aaaaaaaa"); }); }); </script> </head> <body class="claro"> <div id="gridContainer"></div> </body> </html>