SSH+EXTJS前台不能显示数据?

我是一个新手,最近碰到一个小问题,望有识之士能给与我解答!非常感谢!
一个简单的问题,后台得到的数据通过前台显示,使用extjs4.其中extjs的代码如下:[code="java"]
Ext.Loader.setConfig({enabled: true});

Ext.Loader.setPath('Ext.ux', 'extjs/examples/ux/');

Ext.require([
'Ext.grid.*',
'Ext.data.*',
'Ext.util.*',
'Ext.tip.QuickTipManager',
'Ext.ux.LiveSearchGridPanel'
]);

Ext.onReady(function() {

Ext.QuickTips.init();

// sample static data for the store
Ext.define('City', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'id',         type: 'int' },
        { name: 'name',       type: 'string'},
        { name: 'countryCode',type: 'string'},
        { name: 'district',   type: 'string'},
        { name: 'population', type: 'int' }
    ]
});

function population(val) {
    if (val > 50000) {
        return '<span style="color:green;">' + val + '</span>';
    } else if (val < 50000) {
        return '<span style="color:red;">' + val + '</span>';
    }
    return val;
}

var store = Ext.create('Ext.data.Store', {
    storeId:'cityStore',
    model: "City",
    proxy: {
        type: 'ajax',
        url: 'city!list.action',
        reader: {
            type: 'json',
            root: 'citys'
        }
    },
    autoLoad : true
});

// create the Grid, see Ext.
Ext.create('Ext.grid.Panel', {
    title: 'City',
    store: Ext.data.StoreManager.lookup('cityStore'),
    columns: [
        {header: 'ID',  dataIndex: 'id'},
        {header: 'Name',  dataIndex: 'name', editor: 'textfield'},
        {header: 'countryCode', dataIndex: 'countryCode', flex:1,
            editor: {
                xtype: 'textfield',
                allowBlank: false
            }
        },
        {header: 'district', dataIndex: 'district'},
        {header: 'population', dataIndex: 'population', renderer:population}
    ],
    selType: 'rowmodel',
    plugins: [
        Ext.create('Ext.grid.plugin.RowEditing', {
            clicksToEdit: 1
        })
    ],
    height: 200,
    width: 400,
    renderTo: Ext.getBody()
});

});[/code]
后台的SQL语句是运行了的,但是前台就是显示不出来,请问这是怎么回事呢?本人对JS不是很熟,望大侠不以此问题低劣,不吝赐教!

3个回答

会不会是json最后少了一个 } ?

wangwenbincn
wangwenbincn 我现在也是非常痛苦啊。。现在又碰到了头疼的问题,不知道你能不能留个联系方式,向你请教一些问题啊?
接近 7 年之前 回复
iteye_20778
iteye_20778 我经历了大概半年非常痛苦的折腾js的阶段,现在越来越爱js了。:)
接近 7 年之前 回复
wangwenbincn
wangwenbincn 谢谢,确实不是js代码的问题,我的action写的有点问题,现在这个问题已经解决了,非常感谢!我是初学者,以后有什么问题还得向你们请教。。
接近 7 年之前 回复
iteye_20778
iteye_20778 这解决你的问题吗?
接近 7 年之前 回复
iteye_20778
iteye_20778 你的代码是没错的,看我的两个URL。
接近 7 年之前 回复
iteye_20778
iteye_20778 [url]http://elgs.dtdns.net/ext-test//url] [url]http://elgs.dtdns.net/ext-test/app.html/url]
接近 7 年之前 回复
iteye_20778
iteye_20778 See the URL: http://elgs.dtdns.net/ext-test/And: http://elgs.dtdns.net/ext-test/app.html
接近 7 年之前 回复
iteye_20778
iteye_20778 我试验了你的代码和json,出了最后少了一个 },加上}以后运行正常。
接近 7 年之前 回复
wangwenbincn
wangwenbincn 那个json是复制的时候后面的 } 没复制,不好意思。。。本来是有的{"citys":[{"id":1,"name":"Kabul","countryCode":"AFG","district":"Kabol","population":1780000},{"id":2,"name":"Qandahar","countryCode":"AFG","district":"Qandahar","population":237500},{"id":3,"name":"Herat","countryCode":"AFG","district":"Herat","population":186800}] }
接近 7 年之前 回复

一把是后台json请求的格式有问题导致:先看是否有后台的请求到action 如果有,那么就对了。那就检查返回的json格式
[url]http://blog.csdn.net/dys1990/article/details/7484526[/url]
[url]http://www.mhzg.net/a/20115/201151210270238.html[/url]

wangwenbincn
wangwenbincn 格式应该是对的,后面的大括号是复制的时候丢了,应该有的,{"citys":[{"id":1,"name":"Kabul","countryCode":"AFG","district":"Kabol","population":1780000},{"id":2,"name":"Qandahar","countryCode":"AFG","district":"Qandahar","population":237500},{"id":3,"name":"Herat","countryCode":"AFG","district":"Herat","population":186800}]}
接近 7 年之前 回复
iteye_5246
iteye_5246 { "citys": [{},{},{} ] }
接近 7 年之前 回复
iteye_5246
iteye_5246 一看明显是json错了 { "items": [ ,,,,, ] }
接近 7 年之前 回复
wangwenbincn
wangwenbincn 后台返回json格式是这样的:{"citys":[{"id":1,"name":"Kabul","countryCode":"AFG","district":"Kabol","population":1780000},{"id":2,"name":"Qandahar","countryCode":"AFG","district":"Qandahar","population":237500},{"id":3,"name":"Herat","countryCode":"AFG","district":"Herat","population":186800},{"id":4,"name":"Mazar-e-Sharif","countryCode":"AFG","district":"Balkh","population":127800},{"id":5,"name":"Amsterdam","countryCode":"NLD","district":"Noord-Holland","population":731200},{"id":6,"name":"Rotterdam","countryCode":"NLD","district":"Zuid-Holland","population":593321}];把其中JS中的store换成了var store = Ext.create('Ext.data.Store', { storeId:'cityStore', model: "City", proxy: { type: 'ajax', url: 'city!list.action', method:"post", reader: new Ext.data.JsonReader({//读取json数据 type: 'json', root:'citys', idProperty: 'id' },[{name:'id', mapping:'id'}, {name:'name', mapping:'name'}, {name:'countryCode', mapping:'countryCode'}, {name:'district', mapping:'district'}, {name:'population', mapping:'population'} ]) }, autoLoad : true }); 也还是不行?
接近 7 年之前 回复
iteye_5246
iteye_5246 这样你后台直接返回json字符串,用string 拼一个。然后返回给前台,当然这个要对,然后在用jsonarray做返回json这块的,怀疑你 返回的json字符串不是grid想要的格式导致的。请看上面连接中的json格式
接近 7 年之前 回复
wangwenbincn
wangwenbincn 后台的数据请求到action了,这个应该是前台和action的数据连接出问题了。后台的数据通过action存在JSONArray里了,应该是前台这怎么接收出了问题,
接近 7 年之前 回复

1,前台接收的字段名和sql查询出的字段名是否对应上了?
2,查询结果是否返回了?
3,返回的结果在action中你放哪了?是否返回给了前台页面?

wangwenbincn
wangwenbincn 那个json是复制的时候后面的 } 没复制,不好意思。。。本来是有的{"citys":[{"id":1,"name":"Kabul","countryCode":"AFG","district":"Kabol","population":1780000},{"id":2,"name":"Qandahar","countryCode":"AFG","district":"Qandahar","population":237500},{"id":3,"name":"Herat","countryCode":"AFG","district":"Herat","population":186800}] }
接近 7 年之前 回复
iteye_20778
iteye_20778 会不会是json最后少了一个}
接近 7 年之前 回复
wangwenbincn
wangwenbincn 后台打印的json格式是这样的:{"citys":[{"id":1,"name":"Kabul","countryCode":"AFG","district":"Kabol","population":1780000},{"id":2,"name":"Qandahar","countryCode":"AFG","district":"Qandahar","population":237500},{"id":3,"name":"Herat","countryCode":"AFG","district":"Herat","population":186800},{"id":4,"name":"Mazar-e-Sharif","countryCode":"AFG","district":"Balkh","population":127800},{"id":5,"name":"Amsterdam","countryCode":"NLD","district":"Noord-Holland","population":731200},{"id":6,"name":"Rotterdam","countryCode":"NLD","district":"Zuid-Holland","population":593321}];前台没有数据,应该是其中数据传递出了问题,不知道是哪出了问题,store用的jsonreader:var store = Ext.create('Ext.data.Store', { storeId:'cityStore', model: "City", proxy: { type: 'ajax', url: 'city!list.action', method:"post", reader: new Ext.data.JsonReader({//读取json数据 type: 'json', root:'citys', idProperty: 'id' },[{name:'id', mapping:'id'}, {name:'name', mapping:'name'}, {name:'countryCode', mapping:'countryCode'}, {name:'district', mapping:'district'}, {name:'population', mapping:'population'} ]) }, autoLoad : true });
接近 7 年之前 回复
sunyinjie_817
Awegs 试试前台页面用alert打印一下json传递过来的数据
接近 7 年之前 回复
wangwenbincn
wangwenbincn 字段对上了,查询结果通过action也可以在后台显示,以JSONArray格式输出的,就是没返回给前台页面,是不是上面js中的store出了问题?
接近 7 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问