====在线等,关于EXTJS Grid 分页问题,大家帮忙看看====

bandrui 2009-05-13 11:13:35
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
%>
...全文
343 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy8250452 2009-05-14
  • 打赏
  • 举报
回复
你自己看看你读数据的语句是不是写错了
bandrui 2009-05-13
  • 打赏
  • 举报
回复
纠正一下:
数据库中的记录如下:

HWID HWMC HWJM
1 第1条 第1条简码
2 第2条 第2条简码
3 第3条 第3条简码
4 第4条 第4条简码
5 第5条 第5条简码
7 第7条 第7条简码
8 第8条 第8条简码
9 第9条 第9条简码
10 第10条 第10条简码
11 第11条 第11条简码
因为我把HWID为6的记录删除了。现在的情况是
第一页显示:
1 第1条 第1条简码
2 第2条 第2条简码
这两条记录
第二页显示:
1 第3条 第3条简码
2 第4条 第4条简码
这两条记录
第三页显示:-------------------问题所在,应该显示第5第7两条记录的---------------------
1 第8条 第8条简码
2 第9条 第9条简码
这两条记录 -----------------------------------------------------------------------
第四页显示:
1 第10条 第10条简码
2 第11条 第11条简码
这两条记录
第五页显示:
1 第10条 第10条简码
2 第11条 第11条简码
这两条记录
------------------
5 第5条 第5条简码
7 第7条 第7条简码
这两条记录没显示,直接跳过去了,不知道为什么
bandrui 2009-05-13
  • 打赏
  • 举报
回复
数据库中的记录如下:

HWID HWMC HWJM
1 第1条 第1条简码
2 第2条 第2条简码
3 第3条 第3条简码
4 第4条 第4条简码
5 第5条 第5条简码
7 第7条 第7条简码
8 第8条 第8条简码
9 第9条 第9条简码
10 第10条 第10条简码
11 第11条 第11条简码
因为我把HWID为6的记录删除了。现在的情况是
第一页显示:
1 第1条 第1条简码
2 第2条 第2条简码
这两条记录
第二页显示:
1 第3条 第3条简码
2 第4条 第4条简码
这两条记录
第三页显示:-------------------问题所在,应该显示第5第7两条记录的---------------------
1 第8条 第8条简码
2 第9条 第9条简码
这两条记录 -----------------------------------------------------------------------
第四页显示:
1 第10条 第10条简码
2 第11条 第11条简码
这两条记录
第五页显示:
1 第10条 第10条简码
2 第11条 第11条简码
这两条记录
------------------
5 第10条 第5条简码
7 第11条 第7条简码
这两条记录没显示,直接跳过去了,不知道为什么
xiaojing7 2009-05-13
  • 打赏
  • 举报
回复
那数据库就没有第6天记录,所以前面显示就没有这条记录,很正常啊
不清楚你迷糊什么

再一个你安装2条一页的,符合你的条件啊,
bandrui 2009-05-13
  • 打赏
  • 举报
回复
你的ID是自增的吧?
--------------
是的


数据库中的记录如下:

HWID HWMC HWJM
1 未命名 未定义
2 未命名 未定义
3 未命名 未定义
4 未命名 未定义
5 未命名 未定义
7 未命名 未定义
8 未命名 未定义
9 未命名 未定义
10 未命名 未定义
11 未命名 未定义
xiaojing7 2009-05-13
  • 打赏
  • 举报
回复
你的ID是自增的吧?
你看看数据库中的记录和你的记录一样吗?
你的数据库删除后,记录就一样了

你的分页代码没有问题,因为你的现实记录没有一点问题
bandrui 2009-05-13
  • 打赏
  • 举报
回复
jsonclass.asp的代码
--------------------------------------------
<%
Class JSONClass
Dim SqlString
Dim psize
Dim cpage
Dim JSON
Dim DBConnection
Public Function GetJSON ()
dim Rs
dim returnStr
dim i
dim oneRecord
Set Rs= Server.CreateObject("ADODB.Recordset")
Rs.open SqlString,DBConnection,1,1
if Rs.eof=false and Rs.Bof=false then
Rs.pagesize=psize
If (isempty(cpage) or (not isnumeric(cpage)) or cint(cpage)<1) then
page=1
Else
page=cint(cpage)
End If
total_page=Rs.pagecount
total_record=Rs.recordcount
If page>total_page Then page=total_page
returnStr="{""totalProperty"":"""& total_record & """,""root"":["
oneRecord= ""
Rs.AbsolutePage=page
For j=1 to psize
If (Rs.eof) Then Exit For
oneRecord=oneRecord &"{"
for i=0 to Rs.Fields.Count -1
oneRecord=oneRecord & chr(34) &Trim(Rs.Fields(i).Name)&chr(34)&":"
oneRecord=oneRecord & chr(34) &Trim(Rs.Fields(i).Value)&chr(34) &","
Next
oneRecord=left(oneRecord,InStrRev(oneRecord,",")-1)
oneRecord=oneRecord & "},"
returnStr=returnStr & oneRecord
oneRecord= ""
Rs.MoveNext
Next
returnStr=left(returnStr,InStrRev(returnStr,",")-1)
returnStr=returnStr & "]}"
end if
Rs.close
set Rs=Nothing
GetJSON=returnStr
End Function
Private Function check()
End Function
End Class
%>
bandrui 2009-05-13
  • 打赏
  • 举报
回复
我~顶~~~

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧