Extjs store load json data,store fields mapping can't show data

 Extjs ext4.2.2.1144

 store fields mapping : 'user.lastName' store.loadData()后数据显示不正确,编辑显示也不正确,用store.loadRawData()可以。
loadData through reader use loadRawData



Ext.onReady(function() {
	Ext.create('Ext.data.Store', {
				storeId : 'emptyStore',
				fields : [],
				data : []
			});

	var grid = Ext.create('Ext.grid.Panel', {
				title : 'usergrid',
				tbar : [{
					text : 'test',
					handler : function(b, e) {

						var store = Ext.create('Ext.data.Store', {
									storeId : 'userStore',
									fields : [{
												name : 'user',
												mapping : 'user.lastName'
											}, {
												name : 'address',
												mapping : 'address.country'
											}]
								});
						var columns = [{
									text : 'user',
									dataIndex : 'user',
									flex : 1,
									editor : 'textfield'
								}, {
									text : 'address',
									dataIndex : 'address',
									editor : 'textfield',
									renderer : function(value, metaData,
											record, rowIndex, colIndex, store,
											view) {
										return value;
									}
								}];

						grid.reconfigure(store, columns);
						store.loadRawData([{
									user : {
										firstName : 'wan',
										lastName : 'donglei'
									},
									address : {
										country : 'zhongguo',
										city : 'nanjing'
									}
								}]);

					}
				}],
				store : Ext.data.StoreManager.lookup('emptyStore'),
				columns : [],
				plugins : [Ext.create('Ext.grid.plugin.CellEditing', {
							clicksToEdit : 1,
							listeners : {
								beforeedit : function(editor, e, eOpts) {
									var record = e.record;
									console.log(record.raw.address.city)
									var value = e.value;
									if ('-' == value) {
										return false;
									} else {
										return true;
									}
								},
								edit : function(editor, e, eOpts) {
									var record = e.record;
									console
											.log(record.raw.address.city = 'shanghai')
								}
							}

						})],
				height : 200,
				width : 300,
				renderTo : Ext.getBody()
			});
})


参考:

http://docs.sencha.com/extjs/4.0.7/#!/api/Ext.data.Store-method-loadRawData
http://www.sencha.com/forum/showthread.php?192809

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值