JAVA EXT GRID 数据不显示(出错原因雷死人)
最近公司项目用ext,可是出现了一个奇怪的问题。所有的页面都使用的ext框架
可是其中有一个页面的grid数据不显示。打印输出后台数据没错,页面用ajax也能获取到值
。我的同事搞了一两天都没解决,于是我看不下去了就接下了这个任务,这是怎么了。遗憾的是我花了一天时间才找出问题。而且错误原因决对雷死人。
下面就看一下我的代码
ext(部分):
var hp=new Ext.data.HttpProxy({url:'/goldge/Sjglaction.do?method=getPersonInfoXml'});
var ds=new Ext.data.Store({
proxy:hp,
reader:new Ext.data.XmlReader({
totalRecords: 'results',
record:'Sjgl',
id:'car_per_id'
},['car_per_id','driver_name','driver_sex','driver_type','per_age'])
});
//创建Grid表格组件
var sm = new Ext.grid.CheckboxSelectionModel()
var cm=new Ext.grid.ColumnModel([
{header:'编号',width: 40,renderer:function(value, cellmeta, record, rowIndex){return rowIndex + 1;}},
sm,
{header:"姓名",width: 80,dataIndex:'driver_name',sortable: true},
{header:"性别",width: 100,dataIndex:'driver_sex',sortable: true},
{header:"驾照类型",width: 80,dataIndex:'driver_type',sortable: true},
{header:"驾龄",width: 200,dataIndex:'per_age',sortable: true}
]);
var grid=new Ext.grid.GridPanel({
renderTo:'griddiv',
tbar : toolbar,
width:CW,
height:290,
ds:ds,
cm:cm,
sm:sm,
bbar: new Ext.PagingToolbar({
pageSize: 10,
store: ds,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "当前页没有记录" })
})
// grid.render();
ds.load({params:{start:0,limit:10}});
xml数据:
<?xml version="1.0" encoding="utf-8"?>
<list>
<Total>
<results>4</results>
</Total>
<Sjgl>
<car__per__id>29</car__per__id>
<driver__name>儿压</driver__name>
<driver__birthday>2011-03-16</driver__birthday>
<driver__sex>男</driver__sex>
<driver__type>A证</driver__type>
<driver__no>忽然</driver__no>
<driver__no__date>2011-03-16</driver__no__date>
<driver__check__date>2011-03-11</driver__check__date>
<driver__mobil>还让他</driver__mobil>
<driver__tel>合同</driver__tel>
<driver__home__tel>人挺好</driver__home__tel>
<driver__home__addr>人挺好</driver__home__addr>
<driver__link__addr>热负荷</driver__link__addr>
<driver__status>可调</driver__status>
<driver__note>热提货人</driver__note>
<per__age>g4</per__age>
</Sjgl>
</list>
注意对比一下,看看你能否就从这里发现问题。
由于问题不关系到后台,所以代码省略;
ok,不卖关子了
解决方法:将jsp中ext代码所有"_"改为"__"。如此 ,数据就会正确显示出来
怎么样,呵呵呵,够累人吧,花了这么长时间,就这个原因。