本文目錄一覽:
- 1、EXT 的問題,把JsonStore里的數據顯示到FormPanel里
- 2、Extjs中我用data.jsonStore從後台獲取數據後.前台再往裡面添加一條數據.
- 3、EXT 中 一個頁面中 2個Store 互相傳值
- 4、Ext問題,我找了好久也沒解決,希望您能幫我一下。
EXT 的問題,把JsonStore里的數據顯示到FormPanel里
你可以用formpanel的load事件,load成功的話,會按照formpanel上控件的name屬性,自動賦值上去
官方的例子:
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);
}
});
//成功返回時的json例子
{
success: true, //告訴formpanel取值成功
data: { //數據
clientName: “Fred. Olsen Lines”,
portOfLoading: “FXT”,
portOfDischarge: “OSL”
}
}
Extjs中我用data.jsonStore從後台獲取數據後.前台再往裡面添加一條數據.
//定義類型,注意和你json返回的記錄格式要一致
var MyRecordType = Ext.data.Record.create
([
{name: “id”, type: “int”},
{name: “name”, type: “string”}
]);
//要添加的記錄
var oneRecord = new RecordType
({
id: 0,
name: “張三”
});
//Store
var userStore = new Ext.data.Store({
//此處省略
})
userStore.load();
userStore.add(oneRecord);
EXT 中 一個頁面中 2個Store 互相傳值
其實不用這樣
你的store裡面的proxy直接用Ext.data.MemoryProxy
不要用Ext.data.HttpProxy
當你想要讀取數據的時候
直接用Ext.Ajax.request去後台讀取
返回數據解析後
隔半秒調用一下方法添加一條數據
全部例子如下:
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(),
reader: new Ext.data.JsonReader({
id: ‘id’
},
[
{ name: ‘id’ },
{ name: ‘name’ }
])
});
new Ext.grid.GridPanel({
store: store,
columns: [{ header: “id”, dataIndex: ‘id’ }, { header: “name”, dataIndex: ‘name’}]
});
Ext.Ajax.request({
url: “”,
success: function (response) {
var data = Ext.util.JSON.decode(response.responseText);
setTime(loadDate, 500, data);
}
});
//重寫定時函數
function setTime(callback, timeout, param) {
var args = Array.prototype.slice.call(arguments, 2);
var _cb = function () {
callback.apply(null, args);
}
__sto(_cb, timeout);
}
//添加數據
function loadDate(data) {
store.add(new store.recordType(data.shift()));
if (data.length 0) {
setTime(arguments.callee, 500, data);
}
}
Ext問題,我找了好久也沒解決,希望您能幫我一下。
在store的reload()方法中使用 baseParams 吧,剛開始傳一個-1或者什麼的,服務端當特例處理一下,有查詢條件時,將條件通過baseParams傳遞,應該就不會丟了,即使pagingBar翻頁也應該不會丟的。
baseParams : Object
每次HTTP請求都會帶上這個參數,本來它是一個對象的形式,請求時會轉化為參數的字符串。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/192568.html