[英]Using the EXTJS4 example under form/form-grid.js - how to reload grid after submit form
我正在使用EXTJS 4.0.7 gpl。 我正在使用form / form-grid.js下的示例。 在編輯表單中顯示的條目后,我想在示例中重新加載網格。
我正在使用PHP Web服務將數據加載到表單網格中。 我設置了一個處理程序,以便在進行編輯時處理表單條目,並更新網格中的值。 它可以正常工作並更新數據庫。 成功后,我隨后使用以下函數調用為商店重新加載,並查看重新加載時返回的JSON(在FireBug中),但數據未加載到網格中。 如何獲取從存儲負載返回的數據以填充到網格中並進行更新。
我想最終使用MVC,但現在我希望能夠在form.submit成功的form-grid中重新加載網格。
我的商店上有一個'tvdStore'的'storeId',我使用以下方法重新加載了商店:
{
xtype: 'button',
text: 'Save',
style: 'margin: 0 5px 0 5px',
handler: function (button) {
// when this button is clicked, sumbit this form
var form = this.up('form').getForm();
var rating = form.findField("rating").getValue();
var formTargetId = form.findField("ID").getValue();
var formFamilyName = form.findField("FAMILYNAME").getValue();
var formTargetName = form.findField("TARGETNAME").getValue();
var formTableName = form.findField("TABLENAME").getValue();
// convert the int value back to a string
var stringVal = "";
if (rating === true) {
stringVal = 'Yes';
} else if (rating === false) {
stringVal = 'No';
}
form.submit({
waitMsg: 'Saving...', // Wait Message
method: 'POST',
params: { 'targetValue' : stringVal , 'targetId' : formTargetId , 'tableName' : targetName },
url: 'app/model/target/GG/add-update_svc.php',
success: function (form, action) { // When saving data success
Ext.Msg.alert('Success', action.result.message);
// clear the form
form.reset();
// reload store
Ext.data.StoreManager.lookup('tvdStore').load(
{
params: {
tableName: formTableName,
targetName: targetName,
familyName: formFamilyName
}
}
);
},
failure: function (form, action) { // when saving data failed
Ext.MessageBox.alert ('Message','Saving data failed');
}
});
}
}
我看到FireBug中返回了JSON,該JSON應該正在加載到網格中,因此商店正在重新加載,但是我看不到loadMask,並且網格本身從未更新。
實際上,在執行任何更新/刪除/插入過程后,您絕對沒有,也不應重新加載整個商店。 存儲類具有在從服務器接收到結果消息后更新記錄的本地副本的邏輯。 因此,您可能要確保服務器返回正確的消息並更新本地副本。
網格也應該自動重繪更新的記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.