सहेजने के बाद डेटाबेस आईडी के साथ एक स्टोर को अपडेट करना मैं व्यवस्थापक एप में किसी तालिका पर कुछ सरल सीआरयूडी संचालन के लिए EXTJS ग्रिड का उपयोग करने का तरीका सीखने की कोशिश कर रहा हूं।EXTJS + ग्रिड
var userDataStore = new Ext.data.Store({
id: 'userDataStore',
autoSave: false,
batch: true,
proxy: new Ext.data.HttpProxy({
api: {
read: '/Admin/Users/All',
create: '/Admin/Users/Save',
update: '/Admin/Users/Save'
}
}),
reader: new Ext.data.JsonReader(
{
root: 'Data',
idProperty: 'ID',
totalProperty: 'total',
successProperty: 'success',
messageProperty: 'message'
}, [
{ name: 'ID', type: 'string', allowBlanks: false },
{ name: 'NT_ID', type: 'string', allowBlank: false },
{ name: 'EMail', type: 'string', allowBlank: false },
{ name: 'Name', type: 'string', allowBlank: false },
{ name: 'Enabled', type: 'bool', allowBlank: false },
{ name: 'CurrentRoleCode', type: 'string', allowBlank: false}]
),
writer: new Ext.data.JsonWriter(
{
encode: false,
writeAllFields: true,
listful: true
})
});
यह एक ग्रिड के लिए बाध्य है, और मैं लोड और इस मुद्दे के बिना उपयोगकर्ताओं को बचाने के लिए कर रहा हूँ:
मैं एक सरल ग्रिड किसी उपयोगकर्ताओं को संपादित करने की अनुमति देता है कि है, दुकान के रूप में परिभाषित किया गया है। सहेजें बटन ऐसा दिखाई देगा:
var saveButton = new Ext.Button({
text: 'Save',
disabled: true,
handler: function() {
userDataStore.save();
pageState.ClearDirty();
saveButton.disable();
}
});
हालांकि, एक नया उपयोगकर्ता बनाते समय, उपयोगकर्ता के लिए JSON पोस्ट, "अपडेट" के रूप में ही बाकी सेवा समाप्ति बिंदु को पोस्ट किया जाता है किया जा रहा है कि कोई भी आईडी फर्क सिर्फ इतना है साथ मान पोस्ट किया गया है (क्योंकि सर्वर से लोड करते समय केवल स्टोर में सेट किया जाता है)।
यह काम करता है, और मैं उपयोगकर्ताओं को बनाने में सक्षम हूं।
सहेजने वाली आरईएसटी सेवा नई डेटाबेस आईडी के साथ बनाई गई पंक्ति को वापस छोड़ देती है, और मुझे लगता है कि EXTJS पंक्ति में नई जेनरेट की गई डेटाबेस आईडी को स्वचालित रूप से बांध देगा। यह उपयोगकर्ता को उस पंक्ति को और संपादित करने की अनुमति देता है, और एक डालने के बजाय अद्यतन का कारण बनता है।
इसके बजाए, पंक्ति में एक खाली उपयोगकर्ता आईडी है, इसलिए एक अतिरिक्त सहेज एक और नया उपयोगकर्ता बनाता है।
तो या तो:
- ExtJS उत्पन्न पंक्ति आईडी स्वचालित रूप से हल करने के लिए माना जाता है और मैं बस कुछ गलत कर रहा हूँ।
- मुझे अतिरिक्त आरईएसटी कॉल के साथ प्रत्येक सहेजने के बाद मैन्युअल रूप से ग्रिड को पुनः लोड करना होगा।
मैं EXTJS दस्तावेज़ और मंच देख रहा हूं, लेकिन मैं उचित दृष्टिकोण पर अस्पष्ट हूं।
क्या कोई स्पष्टीकरण दे सकता है?
संपादित करें: मैंने सफलताप्रणाली से मेल खाने के लिए JSON में सफलता = सही लौटने की कोशिश की, हालांकि यह अभी भी काम नहीं कर रहा है।
संपादित करें # 2: अब तक केवल एकमात्र चीज जो मैंने पाया है वह काम करने के बाद "userDataStore.reload()" कर रहा है, हालांकि मैं सहेजने के बाद स्टोर की सामग्री वापस कर रहा था, मैं उम्मीद कर रहा था कि EXTJS समझ जाएगा कि पंक्ति मानों को अद्यतन और अद्यतन करें।