EXT 分页

分页代码我已经写好了 但是为什么表格上还是空值啊 分页的工具栏也出来啦
主页代码如下
Ext.onReady(
function(){
[color=red]var storee=new Ext.data.JsonStore({
fields:["lmbh","ljbh","ljmc"],
proxy:new Ext.data.HttpProxy({url:'bbar.jsp'}),
reader:new Ext.data.JsonReader({
totalProperty:'totalProperty',
id:'JsonStore',
root:'root'},[{name:'lmbh'},{name:'ljbh'},{name:'ljmc'}]
)
});//[/color]转换成EXT支持的数据类型

var grid = new Ext.grid.GridPanel({ //创建一个表格
renderTo:"hello",
title:"广西门户项目BI管理模块",
height:400,
width:600,
[color=red]bbar:new Ext.PagingToolbar({
pageSize:10,
store:storee,
displayInfo:true,
displayMsg:'显示第{0}条到第{1}条记录,一共两条',
emptyMsg:"没有记录"
}),[/color]
columns:[
{header:"栏目编号",dataIndex:"lmbh",sortable:true},
{header:"链接编号",dataIndex:"ljbh",sortable:true},
{header:"链接名称",dataIndex:"ljmc"}
],
[color=red]store:storee,
});
storee.load({params:{start:0,limit:10}});[/color]

});

bbar.jsp代码如下
int start=Integer.parseInt(request.getParameter("start"));
int limit=Integer.parseInt(request.getParameter("limit"));
treeDao dao=new treeDao();
List list=dao.queryAllBI1(start,limit);

String json="{totalProperty:50,root:[";
int i=0;
for (addBI bi:list){
json+="{lmbh:"+ bi.getLmbh() +","+"ljbh:"+bi.getLjbh()+","+"ljmc:"+"\""+bi.getLjmc()+"\""+"}";
i=i+1;
if(i<start+limit){json+=",";}}
json+="]}";
response.getWriter().write(json);
谢谢大家啦!运行出来的图我以上传
[b]问题补充:[/b]
打印出来了的 我已经看了的
[b]问题补充:[/b]
callback100000([{id:1, name:'name'}]) 这个能在详细点吗 写在什么地方 还有那个10000是什么意思 谢谢 我是初学者
[b]问题补充:[/b]
json的格式我看了很多次 应该是没问题的 我把我的格式写出来 我的格式是这样的
{totalProperty:50,root:[{lmbh:1,ljmh:1,ljmc:"ddddd"},{lmbh:11,ljmh:1,ljmc:"dfg"}]}
[b]问题补充:[/b]
哎 怎么没人回答了啊 好郁闷啊 这个问题又搞了一下午
[b]问题补充:[/b]
我试试 谢谢大家
[b]问题补充:[/b]
stcCallback1001({totalProperty:50,root:[{lmbh:1,ljbh:1,ljmc:"ddddd"},{lmbh:11,ljbh:1,ljmc:"dfg"}]})

这句话是什么意思 有点看不懂啊 应该不是这样写的吧
[b]问题补充:[/b]
我都试过了 还是不行!Rowen说的:
你把JSON的key:value都加上""试试。。
以前试别人代码的时候,看似没问题,不过加了""反而可以。。

这句话是什么意思 能再详细点吗 我想试试 现在只要是有方法 我就会去尝试啊
[b]问题补充:[/b]
哎 也试过啦!还是不行 我就纳闷了 咋这么烦呢!三天了!
[b]问题补充:[/b]
现在的结果是很奇怪 好像没错误了 结果是表格上已经显示没有记录这几个字了!是不是因为还没有取到JSON吧
[b]问题补充:[/b]
我试了你说的方法啦 是0!哎 但是后台打印JSON却是有值的
[b]问题补充:[/b]
jim.jin 我用ScriptTagProxy 这个方法 他老是报错 说缺少":"这个符号
代码是:
var storee=new Ext.data.JsonStore({
fields:["lmbh","ljbh","ljmc"],

[color=red]proxy:new Ext.data.ScriptTagProxy({url:'bbar.jsp'}),[/color]
reader:new Ext.data.JsonReader({

totalProperty:'totalProperty',

root:'root'
},[{name:'lmbh',mapping:0},{name:'ljbh',mapping:1},{name:'ljmc',mapping:2}])
});

很奇怪 如果我把那句话换成proxy:new Ext.data.HttpProxy({url:'bbar.jsp'}) 则不会报这样的错啦 我不知道为什么
[b]问题补充:[/b]
jim。jin
你说的格式 我都试了的 而且我都获得callback的数据了 已经连接上去了 但是就是有错误!
哎 out.print()我也试啦 现在连记录为空都不显示了!

把[code="java"]var storee=new Ext.data.JsonStore({
fields:["lmbh","ljbh","ljmc"],
proxy:new Ext.data.HttpProxy({url:'bbar.jsp'}),
reader:new Ext.data.JsonReader({
totalProperty:'totalProperty',
id:'JsonStore',
root:'root'},[{name:'lmbh'},{name:'ljbh'},{name:'ljmc'}]
)
});[/code]
改成
[code="java"]var storee=new Ext.data.JsonStore({
fields:["lmbh","ljbh","ljmc"],
url:'bbar.jsp',
totalProperty:'totalProperty',

root:'root'
})[/code]
试试

你用firebug看一下有没打印出json来...

另外你用了JsonStore就直接
var storee=new Ext.data.JsonStore({
url:'',
root:'',
totalProperty:'',
fields:...
})

Ext需要带callback json,
返回的json要像: callback100000([{id:1, name:'name'}])

修正下:
应该是这样:
stcCallback1001({total: 0, items: [{id:1, name:'name'},{id:2, name:'name2'}]})

ext 会传参数 &callback=stcCallback1001 到服务器

你看一下json的格式等有没问题。。。

你把JSON的key:value都加上""试试。。
以前试别人代码的时候,看似没问题,不过加了""反而可以。。

  Ext.onReady( 
    var storee=new Ext.data.JsonStore({ 
      fields:["lmbh","ljbh","ljmc"], 
      [color=red]//proxy:new Ext.data.HttpProxy({url:'bbar.jsp'}), [/color]
      proxy:new Ext.data.ScriptTagProxy({url:'test.json'}), //我这里用test.json 文件来测试 你需要把服务端该为下面的JSON样式
      [color=red]//reader:new Ext.data.JsonReader({ [/color]
        totalProperty:'totalProperty', 
        id:'JsonStore', 
        root:'root'[color=red]//},[{name:'lmbh'},{name:'ljbh'},{name:'ljmc'}]) [/color]
    });//转换成EXT支持的数据类型 

    var grid = new Ext.grid.GridPanel({     //创建一个表格 
      renderTo:"hello", 
      title:"广西门户项目BI管理模块", 
      height:400, 
      width:600, 
      bbar:new Ext.PagingToolbar({ 
        pageSize:10, 
        store:storee, 
        displayInfo:true, 
        displayMsg:'显示第{0}条到第{1}条记录,一共两条', 
        emptyMsg:"没有记录" 
      }),   
      columns:[ 
      {header:"栏目编号",dataIndex:"lmbh",sortable:true}, 
      {header:"链接编号",dataIndex:"ljbh",sortable:true}, 
      {header:"链接名称",dataIndex:"ljmc"} 
      ], 
      store:storee, 
    }); 
    storee.load({params:{start:0,limit:10}}); 

  }); 

json:

[color=red]stcCallback1001([/color]{totalProperty:50,root:[{lmbh:1,[color=red]ljbh[/color]:1,ljmc:"ddddd"},{lmbh:11,[color=red]ljbh[/color]:1,ljmc:"dfg"}]}[color=red])[/color]

红色是需要修改地方

//修正下 刚刚的JS 落了 function(){

Ext.onReady(function(){
var storee=new Ext.data.JsonStore({
fields:["lmbh","ljbh","ljmc"],
[color=red] //proxy:new Ext.data.HttpProxy({url:'bbar.jsp'}), [/color]
[color=red]proxy:new Ext.data.ScriptTagProxy({url:'test.json'}), //我这里用test.json 文件(文件内容见地部)来测试 你需要把服务端该为下面的JSON样式 [/color]
[color=red]//reader:new Ext.data.JsonReader({ [/color]
totalProperty:'totalProperty',
id:'JsonStore',
root:'root'[color=red]//},[{name:'lmbh'},{name:'ljbh'},{name:'ljmc'}]) [/color]
});//转换成EXT支持的数据类型

    var grid = new Ext.grid.GridPanel({     //创建一个表格 
      renderTo:"hello", 
      title:"广西门户项目BI管理模块", 
      height:400, 
      width:600, 
      bbar:new Ext.PagingToolbar({ 
        pageSize:10, 
        store:storee, 
        displayInfo:true, 
        displayMsg:'显示第{0}条到第{1}条记录,一共两条', 
        emptyMsg:"没有记录" 
      }),   
      columns:[ 
      {header:"栏目编号",dataIndex:"lmbh",sortable:true}, 
      {header:"链接编号",dataIndex:"ljbh",sortable:true}, 
      {header:"链接名称",dataIndex:"ljmc"} 
      ], 
      store:storee, 
    }); 
    storee.load({params:{start:0,limit:10}}); 

  }); 

json(test.json):

[color=red]stcCallback1001([/color]{totalProperty:50,root:[{lmbh:1,[color=red]ljbh[/color]:1,ljmc:"ddddd"},{lmbh:11,[color=red]ljbh[/color]:1,ljmc:"dfg"}]})

红色是需要修改地方

ScriptTagProxy 需要这样的JSON格式

http://bill-end.iteye.com/blog/149214

"lmbh":"1","ljbh":"1","ljmc":"ddddd"
像上面这些JSON数据,key:value都""了试试。。

有没有记录可以在store load完,用store.getCount()查看有几条记录。

ScriptTagProxy + test.json 文件 我这边昨晚试了是可以的,你很可能大母指了

[quote]是0[/quote]
这不是你的数据根本没到前台嘛。。
后台打印出来。那你从firebug看有数据么。。

response.getWriter().write(json);
改成
out.println(json);试试

ScriptTagProxy 这是跨域的,你有跨域么。 :cry:

HttpProxy 和 ScriptTagProxy 要求的JSON格式不同
ScriptTagProxy 会调用像 stcCallBack100001 的方法,你返回的JSON如何不符合ScriptTagProxy的要求当然出错了

ScriptTagProxy 要求像下面这样的JSON

stcCallback1001({totalProperty:50,root:[{lmbh:1,ljbh:1,ljmc:"ddddd"},{lmbh:11,ljbh:1,ljmc:"dfg"}]})