====在线等,关于EXTJS Grid 分页问题,大家帮忙看看====
1》grid翻页, 每页显示2条记录
2.如果数据表是空的,那么点击增加按钮后显示一切正常:我添加了HWID从1-12的12条记录,翻页正常
3.如果我删除中间的其中的一条数据(HWID为6),则显示不正常了。翻页的时候第一页显示1、2,第二页显示3、4,第三页就显示8、9了。跳了HWID为5和7的两条数据。第4页显示10、11,第5页显示10、11
页面代码:
--------------------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
<HEAD>
<TITLE></TITLE>
<script type="text/javascript">
Ext.onReady(function(){
Ext.BLANK_IMAGE_URL='ext/resources/images/default/s.gif';
Ext.QuickTips.init();
var goods = Ext.data.Record.create([
{name:'HWID',type:'int'},
{name:'HWMC',type:'string'},
{name:'HWJM',type:'string'}
]);
var store = new Ext.data.JsonStore({
url: 'aspaction/basic_goods.asp',
root : 'root',
totalProperty : 'totalProperty',
id:'HWID',
fields:goods
});
store.load({params:{start:0,limit:2}});
//store.setDefaultSort('YGID','asc');
var sm = new Ext.grid.CheckboxSelectionModel();
var sm2 = new Ext.grid.CheckboxSelectionModel();
var grid = new Ext.grid.EditorGridPanel({
loadMask: true,
//loadMask: {msg:'正在加载数据,请稍侯……'},和上面的随便用那个
store:store,
applyTo:'goodslist',
width:'100%',
height:540,
frame:true,
cm:new Ext.grid.ColumnModel([
sm,
new Ext.grid.RowNumberer(),
{id:'HWID',header:"ID",width:50,dataIndex:'HWID',align:'center'},
{header:"货物名称",width:200, dataIndex:'HWMC',sortable:true,editor:new Ext.form.TextField({allowBlank:false})},
{header:"货物简码", dataIndex:'HWJM',sortable:true,editor:new Ext.form.TextField({allowBlank:false})}
]),
sm:sm2,
tbar:[{
text:'添加',
tooltip:'添加一条货物基础信息',
iconCls:'add',
handler:function(){
/*var n=grid.getStore().getCount();
var p = new goods({
HWID:n+1,
HWMC:'未命名',
HWJM:'未定义'
});
grid.stopEditing();
store.insert(n, p);
grid.startEditing(n,1);
*/
Ext.Ajax.request({
method:'POST',
url:'aspaction/basic_goods_edit.asp?action=add',
params:"hwmc=未命名&hwjm=未定义",
success:function(){store.reload();},
failure:function(){
Ext.MessageBox.alert('警告','提交数据时出现错误,请重试');
}
});
}
},'-',{
text:'删除',
tooltip:'删除一条或多条货物基础信息',
iconCls:'remove',
handler:function(){
var cid = "";
var rows = grid.getSelectionModel().getSelections();
if (rows)
{
for (var i=0;i<rows.length ;i++ )
{
cid=cid+rows[i].get("HWID")+","
}
}
if(rows.length==0){
Ext.MessageBox.alert('警告', '最少选择一条信息,进行删除!');
}else{
Ext.MessageBox.confirm('提示','您确定删除这些基础信息吗?',callBack);
function callBack(btn){
if (btn=="yes")
{
Ext.Ajax.request({
method:'POST',
url:'aspaction/basic_goods_edit.asp?action=del',
params:"id="+cid,
success:function(){store.reload();},
failure:function(){
Ext.MessageBox.alert('警告','提交数据时出现错误,请重试');
}
});
}
}
}
}
}],
bbar:new Ext.PagingToolbar({
width:'100%',
store:store,
pageSize:2,
displayInfo:true,
displayMsg:'当前显示{0}-{1}条记录/共{2}条记录',
emptyMsg:'no record'
})
})
grid.on('afteredit',afterEdit,grid);
function afterEdit(obj){
var editrow=obj.record;
var editcol=obj.field;
var id=editrow.get("HWID");
var rowvalue=editrow.get(editcol);
//alert("id="+id+"&name="+editcol+"&value="+rowvalue);
Ext.Ajax.request({
method:'POST',
url:'aspaction/basic_goods_edit.asp?action=mod',
params:"id="+id+"&name="+editcol+"&value="+rowvalue
});
}
})
</script>
</HEAD>
<BODY>
<div id="goodslist"></div>
</BODY>
</HTML>
数据代码:
-------------------------------------------
<!--#include file="../inc/con_db.asp"-->
<!--#include file="../inc/jsonclass.asp"-->
<%
Set a=new JSONClass
a.Sqlstring="Select * From BasicGoods"
a.psize=request("limit")
a.cpage=Trim(request("start"))
a.dbconnection=conn
response.Write(a.GetJSon())
Set a=nothing
%>