導航:首頁 > 編程語言 > extjs分頁配置每頁

extjs分頁配置每頁

發布時間:2023-08-23 06:20:37

A. EXTjs grid 分頁成功但是還是顯示全部數據

不懂你後台怎麼寫的,第一次請求也只要返回15條就可以了,不要返回全部數據。專

extjs分頁,比屬如你有40條數據,你要分頁,每頁15條。
後台做的時候,並不要返回40條,只要返回15條就夠了。然後帶一個總數40條。即可。
這樣,extjs就知道,你有三頁。

B. EXTJS:怎麼統一的定義分頁條數

這個可以通過重寫的方式來實現代碼如下:

Ext.define("Ext.data.Store",{
override:"Ext.data.Store",
constructor:function(){
this.callParent(arguments);
this.pageSize = 15; //自定義頁數
}
});

C. extjs分頁傳參問題

不知道你用的是Extjs哪個版本,下面貼出來的是extjs4的分頁寫法:

Ext.extend(Ext.ux.PageSizePlugin,Ext.form.ComboBox,{
init:function(paging){
paging.on('render',this.onInitView,this);
},

onInitView:function(paging){
paging.add('-','每頁顯示',this,'條記錄');
this.setValue(paging.pageSize);
this.on('select',this.onPageSizeChanged,paging);
this.on('keydown',this.onPageSizeKeydown,paging);
},

onPageSizeChanged:function(combo){
this.pageSize=parseInt(combo.getValue());
compage=parseInt(combo.getValue());
pageSize=compage;
gridPanel.getStore().pageSize=compage;
query();
},
onPageSizeKeydown:function(combo,e){
if(e.keyCode==13){
this.pageSize=parseInt(combo.getRawValue());
compage=this.pageSize;
pageSize=compage;
gridPanel.getStore().pageSize=compage;
query();
}
}
});

D. ExtJs讀取後台數據進行分頁

oStore = new Ext.data.JsonStore({
url: '/backend/getdata', // 這兒就是你說的後台
root: 'data',
totalProperty: 'total', // total 裡面放記錄總數
remoteSort: true,
fields: [ // 具體有哪些欄位?
'field1',
'field2',
... ...
]
});
var selModel = new Ext.grid.CheckboxSelectionModel();
var colModel = new Ext.grid.ColumnModel([selModel, {
//表格列定義
... ...
]);

oGrid = new Ext.grid.GridPanel({
title: '標題',
iconCls:'icon_xxx', // 圖標
ds: oStore,
cm: colModel,
sm: selModel,
loadMask: {
msg: 'Loading...'
},
tbar:[{ //頭部工具
text: '按鈕1',
iconCls: 'icon-fileup',
tooltip: '按鈕1的動作',
handler: function(btn, e){
//
}
}],
bbar: new Ext.PagingToolbar({ //底部工具條(分頁在這兒實現)
store: oStore,
pageSize: 30, //每頁顯示的記錄數
displayInfo: true,
plugins: [new Ext.ux.PageSizePlugin()], // 這是一個插件,在網上找找
emptyMsg: "沒有數據"
}),
listeners: {
render: function() {
//載入首頁數據
oStore.load({params:{start:0, limit:30}});
}
}
});

/backend/getdata 返回的數據應該是這樣
{
data: [...],
total: 100
}

E. (高分請教)extjs與java結合後進行頁面分頁問題

想做分頁必須要與後台進行交互.給你一個我寫的程序前台頁面:
<%@ page contentType="text/html; charset=UTF-8" language="java"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-nested" prefix="nested"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title></title>
<link rel="stylesheet" href="<%=request.getContextPath()%>/css/tab.css" type="text/css"></link>
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/scripts/ext/resources/css/ext-all.css">
<script type="text/javascript" src="<%=request.getContextPath() %>/scripts/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="<%=request.getContextPath() %>/scripts/ext/ext-all.js"></script>
</head>
<script type="text/javascript">
mole_js =function() {
var ds, cm, gridHead, gridFoot, paging, grid;
var countPerPage=12; //每頁顯示幾條
var mod_mole_win,mod_id_temp;
return {
init : function(){
//設置布局
var border = new Ext.Panel({
title: '布局',
layout:'border',
items: [{
title: '北部面板',
region: 'north',
height: 100,
minSize: 75,
maxSize: 250//,
//margins: '0 5 5 5'
},{
title: '模塊列表',
region:'center'//,
// margins: '5 5 0 0'
}]
});
//顯示模塊列表
ds = new Ext.data.Store({ //定義數據集合
proxy: new Ext.data.HttpProxy({url:'sysFunction.do?method=selectMole'}), //讀取列表的方法,id是傳進來的
reader: new Ext.data.JsonReader({ //讀取方式
totalProperty: 'totalProperty', //後台返回的總記錄數,要與後台欄位對應
root: 'jsondata' //後台返回的結果
}, [
{name: 'functionId'},
{name: 'showName'},
{name: 'functionName'},
{name: 'linkUrl'}
])
});

ds.on('beforeload',beforeload);
function beforeload(myds,options){
var conditaion = {parentId:'-1',level:1,functionName:document.getElementById('functionName').value,showName:document.getElementById('showName').value,showOrder:document.getElementById('showOrder').value,linkUrl:document.getElementById('linkUrl').value,hrefTarget:document.getElementById('hrefTarget').value,showInMenu:document.getElementById('showInMenu').value};
options=options||{};
options.params = options.params||{};
options.params.conditaion = Ext.util.JSON.encode(conditaion);
return true;
}
ds.load({params:{start:0,limit:countPerPage}}); //載入數據

cm = new Ext.grid.ColumnModel([ //定義列
new Ext.grid.RowNumberer(), //行號
{header:'ID',dataIndex:'functionId',width: 40,sortable: true},
{header:'模塊名',dataIndex:'functionName',width: 120,sortable: true},
{header:'顯示名',dataIndex:'showName',width: 130,sortable: true},
{header:'URL',dataIndex:'linkUrl',width: 260,sortable: true}
]);

var pagingBar = new Ext.PagingToolbar({ //分頁按鈕
pageSize: countPerPage,
store: ds,
displayInfo: true,
displayMsg: '第 {0} 條 - 第 {1} 條 共 {2} 條',
emptyMsg: "沒有數據",

items:[
'-', {
pressed: true,
enableToggle:true,
text: '刪 除 模 塊',
cls: 'x-btn-text-icon details',
toggleHandler: confirmDelMole
}]
});

grid = new Ext.grid.GridPanel({ //開始構建列表
el: 'mole_grid', //所使用的div
ds: ds, //數據集合
cm: cm, //列定義
height: 340, //該列表的高和寬
width: 590,
bbar: pagingBar
});
grid.render(); //開始生成列表

grid.on('rowdblclick',function(grid,rowIndex,e){
var mod_id=ds.getAt(rowIndex).data['functionId'];
//var mod_id=ds.getAt(rowIndex).functionId;
mod_id_temp = mod_id;
openModPage(mod_id);
});

function openModPage(mod_id){
if(typeof(mod_id)=="undefined"||mod_id==null){
Ext.Msg.alert("提示信息","請選擇您要修改的一行");
return false;
}
document.getElementById('mod_mole').style.display="";
var handle = function (opts, success, response) {
if(success){
var data = eval("("+response.responseText+")");
if(data.result){
var nav = new Ext.Panel({
items:[{
id:'mod_mole_id',
width:600,
height:300,
contentEl:'mod_mole'
}]
});
if(!mod_mole_win||mod_mole_win!=null){
mod_mole_win = new Ext.Window({
width: 600,
height: 300,
closeAction:'hide',
minimizable: false,
title: '修改模塊',
items:[nav],
keys: [{ key: 27,
fn: function(){mod_mole_win.hide();} }]});
mod_mole_win.on('minimize', function(){
mod_mole_win.toggleCollapse();});
mod_mole_win.show();
}
mod_mole_win.show(this);

document.getElementById('mod_functionName').value = data.functionName;
document.getElementById('mod_showName').value = data.showName;
document.getElementById('mod_showOrder').value = data.showOrder;
document.getElementById('mod_linkUrl').value = data.linkUrl;
document.getElementById('mod_hrefTarget').value = data.hrefTarget;
document.getElementById('mod_showInMenu').value = data.showInMenu;
mod_id_temp = data.functionId;
}else{
Ext.Msg.alert("提示信息",data.message);
}
}else{
Ext.Msg.alert("提示信息","ajax請求沒能正常完成");
}
};
var url = 'sysFunction.do?method=toModMole';
var params = {data:Ext.util.JSON.encode({mod_id:mod_id,time_stamp:(new Date()).getTime()})};
var connection = new Ext.data.Connection();
connection.request({url:url,method:'POST',params:params,callback:handle});
}

function confirmDelMole()
{
var rows=grid.getSelectionModel().getSelections();
if(typeof(rows)=="undefined"||rows===null||rows==""){
Ext.Msg.alert("提示信息","請選擇要刪除的模塊");
return false;
}
var del_ids="";
for(var i=0;i<rows.length;i++)
{
del_ids=del_ids+rows[i].get("functionId")+',';
}
var handle = function (opts, success, response) {
if(success){
var data = eval("("+response.responseText+")");
if(data.result){
if(data.count>0){
Ext.Msg.alert("提示信息","該模塊下面還有"+data.count+"個菜單?請先刪除其子菜單後再刪除該模塊?!");
return false;
}else{
Ext.MessageBox.confirm('刪除提示', '確定刪除該模塊嗎?', delMole);
}
}else{
Ext.Msg.alert("提示信息",data.message);
}
}else{
Ext.Msg.alert("提示信息","ajax請求沒能正常完成");
}
};
var url = 'sysFunction.do?method=preDelMole';
var params = {data:Ext.util.JSON.encode({del_ids:del_ids,time_stamp:(new Date()).getTime()})};
var connection = new Ext.data.Connection();
connection.request({url:url,method:'POST',params:params,callback:handle});
}

function delMole(btn)
{
if(btn=="yes"){
var rows=grid.getSelectionModel().getSelections();
if(typeof(rows)=="undefined"||rows===null||rows==""){
Ext.Msg.alert("提示信息","請選擇要刪除的模塊");
return false;
}
var del_ids="";
for(var i=0;i<rows.length;i++)
{
del_ids=del_ids+rows[i].get("functionId")+',';
}
var handle = function (opts, success, response) {
if(success){
var data = eval("("+response.responseText+")");
if(data.result){
ds.reload();
Ext.Msg.alert("提示信息","刪除成功");
}else{
Ext.Msg.alert("提示信息",data.message);
}
}else{
Ext.Msg.alert("提示信息","ajax請求沒能正常完成");
}
};
var url = 'sysFunction.do?method=delMole';
var params = {data:Ext.util.JSON.encode({del_ids:del_ids,time_stamp:(new Date()).getTime()})};
var connection = new Ext.data.Connection();
connection.request({url:url,method:'POST',params:params,callback:handle});
}
}

},closeModMoleWin:function()
{
mod_mole_win.hide();
},modMole:function()
{
var functionName = document.getElementById('mod_functionName').value;
var showName = document.getElementById('mod_showName').value;
var showOrder = document.getElementById('mod_showOrder').value;
var linkUrl = document.getElementById('mod_linkUrl').value;
var hrefTarget = document.getElementById('mod_hrefTarget').value;
var showInmenu = document.getElementById('mod_showInMenu').value;
var handle = function (opts, success, response) {
if(success){
var data = eval("("+response.responseText+")");
if(data.result){
mole_js.closeModMoleWin();
ds.reload();
Ext.Msg.alert("提示信息","修改成功");
}else{
Ext.Msg.alert("提示信息",data.message);
}
}else{
Ext.Msg.alert("提示信息","ajax請求沒能正常完成");
}
};
var url = 'sysFunction.do?method=modMole';
var params = {data:Ext.util.JSON.encode({mod_id:mod_id_temp,functionName:functionName,showName:showName,showOrder:showOrder,showInmenu:showInmenu,linkUrl:linkUrl,hrefTarget:hrefTarget,time_stamp:(new Date()).getTime()})};
var connection = new Ext.data.Connection();
connection.request({url:url,method:'POST',params:params,callback:handle});
},selectMole:function()
{
ds.load({params:{start:0,limit:countPerPage}});
}
};
}();
Ext.EventManager.onDocumentReady(mole_js.init, mole_js, true);
</script>
<body>
<table>
<tr>
<td align="center">
<div id="north" align="left">
<center><h3>查詢模塊</h3></center>
<table align="center">
<tr>
<td>
模塊名(英文):
</td>
<td height="25">
<input type="text" id="functionName">
</td>
<td>
模塊顯示名:
</td>
<td height="25">
<input type="text" id="showName">
</td>
</tr>
<tr>
<td>
顯示次序:
</td>
<td height="25">
<input type="text" id="showOrder">
</td>
<td>
鏈接路徑(沒有不填):
</td>
<td height="25">
<input type="text" id="linkUrl">
</td>
</tr>
<tr>
<td>
所在窗口(沒有不填):
</td>
<td height="25">
<input type="text" id="hrefTarget">
</td>
<td>
是否在菜單中顯示:
</td>
<td height="25">
<select id="showInMenu" style="width:155px">
<option value="">所有</option>
<option value="t">顯示</option>
<option value="f">不顯示</option>
</select>
</td>
</tr>
<tr>
<td>
備注(沒有不填):
</td>
<td height="25" colspan="3">
<input type="text" id="memo" size="60">
</td>
</tr>
<tr>
<td height="25" align="center" colspan="4">
<input type="button" name="subButton" id="subButton" value="查詢" onclick="mole_js.selectMole();">
</td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td>
<br>
<div id="center">
<div id="mole_grid">
</div>
</div>
</td>
</tr>
</table>
<div id="mod_mole" style="display:none">
<center><h3>修改模塊</h3></center>
<table align="center">
<tr>
<td>
模塊名(英文):
</td>
<td height="25">
<input type="text" id="mod_functionName" size="60">
</td>
</tr>
<tr>
<td>
模塊顯示名:
</td>
<td height="25">
<input type="text" id="mod_showName" size="60">
</td>
</tr>
<tr>
<td>
顯示次序:
</td>
<td height="25">
<input type="text" id="mod_showOrder" size="60">
</td>
</tr>
<tr>
<td>
鏈接路徑(沒有不填):
</td>
<td height="25">
<input type="text" id="mod_linkUrl" size="60">
</td>
</tr>
<tr>
<td>
所在窗口(沒有不填):
</td>
<td height="25">
<input type="text" id="mod_hrefTarget" size="60">
</td>
</tr>
<tr>
<td>
是否在菜單中顯示:
</td>
<td height="25">
<select id="mod_showInMenu" style="width:435px">
<option value="t">顯示</option>
<option value="f">不顯示</option>
</select>
</td>
</tr>
<tr>
<td>
備注(沒有不填):
</td>
<td height="25">
<input type="text" id="mod_memo" size="60">
</td>
</tr>
<tr>
<td height="25" align="center" colspan="2">
<input type="button" name="subButton" id="subButton" value="確認" onclick="mole_js.modMole();">
<input type="button" name="closeButton" value="關閉" onclick="mole_js.closeModMoleWin();">
</td>
</tr>
</table>
</div>
</body>
</html>
你參考下,把例子往下接著做,看著是有點長,不過不要緊,你先把教程的例子看完,然後你再看就知道需要提煉什麼了,我這個jsp涵蓋了很多東西,你做其他什麼的時候也許也會用到的.

F. extjs 一次性把數據取出後在grid 裡面怎麼分頁

如果是用extjs的分頁插件的話,是沒辦法實現的

只有後台輸出固定量的數據才能實現這個效果專

雖然屬extjs的官方demo有一個demo確實是一次性數據分頁,但是別人是寫了插件才實現的,如果直接用分頁插件肯定不行

至於那個本地分頁插件,你參考一下官網例子吧,我自己弄了好久也沒搞定

純手打,希望幫到你

G. Extjs 分頁工具條加按鈕,然後輸入第幾頁,點擊按鈕就跳轉到第幾頁怎麼實現

給那個數據框添加偵聽事件,點擊或者回車時執行偵聽事件,執行數據載入就可以了。我的源碼:

var pagingBar = new Ext.PagingToolbar({
pageSize : Cookies.get('pageSize')
? parseInt(Cookies.get('pageSize'))
: 15,
store : myStore,
displayInfo : true,
displayMsg : '第{0} - {1}條,共{2}條',
emptyMsg : "沒有記錄",
items : ['-', '每頁', new Ext.form.Field({
hideLabel : 'true',
size : '3',
height : '18',
cls : "x-tbar-page-number",
id : 'pagefield'
}), '條記錄']
});
if (Ext.getCmp('pagefield')) {
Ext.getCmp('pagefield').on("specialkey", function(arg, e) {
var k = e.getKey();
if (k == e.RETURN) {
e.stopEvent();
pagingBar.pageSize = parseInt((arg.getValue()%1==0 && arg.getValue()>0)?arg.getValue():15);
Cookies.set('pageSize', pagingBar.pageSize);
pagingBar.doLoad(0);
arg.setValue(pagingBar.pageSize);
} else if (k == e.UP || k == e.PAGEUP || k == e.DOWN
|| k == e.PAGEDOWN) {
e.stopEvent();
var pageNum = parseInt((arg.getValue()%1==0 && arg.getValue()>0)?arg.getValue():15);
var increment = e.shiftKey ? 10 : 1;
if (k == e.DOWN || k == e.PAGEDOWN) {
increment *= -1;
}
pageNum += increment;
arg.setValue(pageNum);
}
});
Ext.getCmp('pagefield').on("focus", function() {
this.el.dom.select();
});
Ext.getCmp('pagefield').setValue(pagingBar.pageSize);
}

閱讀全文

與extjs分頁配置每頁相關的資料

熱點內容
ca證書管理器linux 瀏覽:358
蘋果id安全提示問題3個字元 瀏覽:949
iphone上好的拍照軟體 瀏覽:579
word內嵌文件怎麼下載 瀏覽:864
8s16升級 瀏覽:340
計算機網路技術基礎pdf 瀏覽:544
javafrom提交地址參數 瀏覽:721
git發布版本 瀏覽:728
vc修改文件名 瀏覽:149
linux65從域 瀏覽:321
用什麼東西壓縮文件 瀏覽:406
怎麼刪除ipad隱藏的APP 瀏覽:981
編程如何佔用大量內存 瀏覽:116
多個excel表格文件如何組合 瀏覽:918
ubuntu內核升級命令 瀏覽:679
pgp文件夾 瀏覽:894
一鍵還原的文件是什麼格式 瀏覽:581
女漢子微信名霸氣十足 瀏覽:65
win10手機藍屏修復 瀏覽:419
windows2008激活工具 瀏覽:259

友情鏈接