gpt4 book ai didi

extjs - 分机号 : FormPanel not populating fields with JSON data

转载 作者:行者123 更新时间:2023-12-02 06:45:18 25 4
gpt4 key购买 nike

我有一个包含 3 个字段和一个 JsonReader 的 FormPanel。这是设置:

  var goalPanel = new Ext.FormPanel({
reader: new Ext.data.JsonReader({
idProperty: 'id',
root: 'items',
fields: [
{name: 'referenceSales', type:'float'},
{name: 'increasePercentage', type: 'float'},
{name: 'salesGoal', type: 'float'}
]
}),
labelAlign: 'top',
frame:true,
bodyStyle:'padding:5px 5px 0',
items: [{
layout:'column',
items:[{
columnWidth:.33,
layout: 'form',
items: [{
fieldLabel: 'Reference Sales',
xtype: 'numberfield',
name: 'referenceSales',
readOnly: true,
disabled: true,
anchor:'95%'
}]
},{
columnWidth:.33,
layout: 'form',
items: [{
fieldLabel: 'Increase %',
name: 'increasePercentage',
xtype: 'numberfield',
anchor:'95%',
decimalPrecision: 2,

}
}]},{
columnWidth:.34,
layout: 'form',
items: [{
fieldLabel: 'Sales Goal',
name: 'salesGoal',
xtype: 'numberfield',
anchor:'95%',
decimalPrecision: '2',

}]
}]
}],

buttons: [{
text: 'Recalculate'
}]
});

这是我加载数据的方式:

goalPanel.getForm().load({url:'goal/getAnnualSalesGoal', method:'GET',params:myParams} );

这是在 Firebug 中看到的 JSON 响应:

{"items":[{"referenceSales":700000,"salesGoal":749000,"increasePercentage":0.07}]}

我没有收到任何错误,加载后表单字段肯定是空的。我该如何解决这个问题,或者开始调试它?

最佳答案

如果您查看 Ext.form.BasicForm 的文档,它说 BasicForm 内置了 JSON 支持,因此您不需要使用 JsonReader 将数据加载到表单中。不过这应该不会有什么坏处。

我认为主要问题可能是对 BasicForm 的加载调用需要这样的 JSON 响应:

{
"success": true,
"data": {
"referenceSales": 700000,
"salesGoal": 749000,
"increasePercentage": 0.07
}
}

但是你的在数组中。

(来自Ext.form.BasicForm.load docs)

附带说明一下,如果您使用的是 Ext 3.0,hbox 布局比 columns 更容易处理。

关于extjs - 分机号 : FormPanel not populating fields with JSON data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1351424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com