[英]ExtJs doesn't load data to a form using ext.data.store
加載表單時,我需要將json對象中的數據加載到表單面板中,我的代碼是這樣的
這是我的數據模型
Ext.define('Contact', {
extend : 'Ext.data.Model',
fields : [ {
name : 'first',
mapping : 'name.first'
}, {
name : 'last',
mapping : 'name.last'
}, 'company', 'email', {
name : 'dob',
type : 'date',
dateFormat : 'm/d/Y'
} ]
});
這是我的數據存儲
var store = Ext
.create(
'Ext.data.Store',
{
// alert("inside")
// id: 'store',
model : 'Contact',
proxy : {
type : 'ajax',
url : 'http://localhost:8090/extjs-crud-grid-spring-hibernate/contact/view.action',
reader : 'json',
root : 'contact'
},
autoLoad : true
});
這是我的表單面板
Ext.onReady(function() {
var formPanel = Ext.create('Ext.form.Panel', {
title : 'Simple Form with FieldSets',
labelWidth : 75, // label settings here cascade unless
// overridden
// url : 'save-form.php',
frame : true,
bodyStyle : 'padding:5px 5px 0',
width : 340,
bodyPadding : 5,
layout : 'anchor', // arrange fieldsets side by side
items : [ {
xtype : 'fieldset',
title : 'Contact Information',
defaultType : 'textfield',
defaults : {
width : 280
},
items : [ {
fieldLabel : 'First Name',
emptyText : 'First Name',
name : 'first'
}, {
fieldLabel : 'Last Name',
emptyText : 'Last Name',
name : 'last'
}, {
fieldLabel : 'Company',
name : 'company'
}, {
fieldLabel : 'Email',
name : 'email',
vtype : 'email'
}, {
xtype : 'datefield',
fieldLabel : 'Date of Birth',
name : 'dob',
allowBlank : false,
maxValue : new Date()
} ]
} ],
renderTo : Ext.getBody()
});
var record = store.getAt(0);
formPanel.getForm().loadRecord(record);
});
這是我的json格式
{
"contact": {
"name": {
"first": "Aaron",
"last": "Conran"
},
"company": "Ext JS",
"email": "support@sencha.com",
"state": "OH",
"dob": "04/15/2007"
}
}
當我嘗試將這一行“ formPanel.getForm()。loadRecord(record)”放給我時,出現此錯誤“ Uncaught TypeError:無法調用未定義的方法'getData'”,並且這也不會將數據加載到加載時的表格面板
希望有人可以幫助我
您是否在記錄變量中獲取數據。 請參考以下示例...
此類的實例僅在加載時由Form創建。
Response Packet Criteria
響應數據包必須包含:
data屬性包含要加載的字段的值。 每個字段的單個值對象將傳遞到字段的setValue方法。
JSON Packets
默認情況下,假定響應數據包為JSON,因此對於以下表單加載調用:
var myFormPanel = new Ext.form.FormPanel({
title: 'Client and routing info',
items: [{
fieldLabel: 'Client',
name: 'clientName'
}, {
fieldLabel: 'Port of loading',
name: 'portOfLoading'
}, {
fieldLabel: 'Port of discharge',
name: 'portOfDischarge'
}]
});
myFormPanel.getForm().load({
url: '/getRoutingInfo.php',
params: {
consignmentRef: myConsignmentRef
},
failure: function(form, action) {
Ext.Msg.alert("Load failed", action.result.errorMessage);
}
});
成功響應數據包可能如下所示:
{
success: true,
data: {
clientName: "Fred. Olsen Lines",
portOfLoading: "FXT",
portOfDischarge: "OSL"
}
}
而故障響應數據包可能如下所示:
{
success: false,
errorMessage: "Consignment reference not found"
}
可以將其他數據放入響應中,以處理Form的回調或事件處理程序方法。 從此JSON解碼的對象在result
屬性中可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.