2009-11-10 66 views
2

我需要啓用用戶添加一個新的行到網格。 用戶也可能更新一行或多行。ExtJs添加,刪除,更新行到網格

這樣做的最好方法是什麼?

我有tried使用RESTful Store Example,但一直沒有能夠處理REST張貼與PHP。

當點擊添加記錄按鈕,它(按更新時,在一次點擊,並一次)觸發的POST兩次。

此外,即使發佈到數據庫後,更新仍保持標記。

謝謝。

+0

這個問題的最終結果是什麼?我面臨同樣的問題,它甚至不會在第一次保存後觸發更新方法。該鏈接上的 – IEnumerator 2011-01-20 21:02:44

回答

3

你應該密切關注的代碼在Row Editor的演示。請注意,他們將事件偵聽器添加到「add」,「update」和「remove」事件中(在本例中)稱爲商店的功能。

不知道你的POST來自哪裏(因爲你還沒有發佈任何代碼)。基本上你會在商店的「更新」事件中設置一個監聽器。所有的編輯都在本地進行,只會影響您當地的「商店」對象,除非您另有說明。通過將事件監聽器附加到商店的「更新」事件中,如果記錄實際更改爲if(record.dirty),則可以讓它處理將數據發送回服務器。 「商店」收到「更新」事件,並且RowEditor收到「未處理」事件。至於更改標記,請仔細查看「Store」對象的commitChanges()方法。

+1

404 – 2011-05-03 14:31:26

1

我最近也有同樣的問題(記錄仍然標記髒,即使響應是乾淨的)。我可能會爲你提供一個解決方案。我在帶內定義了JsonReader的元數據,並沒有設置成功屬性,做出了一個可怕的假設,即它會堅持默認的「成功」。一旦我提供了這個所有的魔法開始工作。我對你的建議是檢查你的JsonReader配置,並仔細檢查你發送的是哪種數據。讀者對於它的回報很挑剔。你需要定義idProperty,root,successProperty等。

FWIW,它拋出一個異常,但我從來沒有看到它在Firebug的控制檯。我必須經歷艱難的任務,才能通過Ext的代碼來發現這個問題。

1

雙重POST和記錄保持髒是同樣的問題。

當事情在網格中被修改,修改的記錄列表被髮送到服務器。您必須修改並返回它們,這些返回的值(與商店中的當前值進行比較?)在商店中更新並標記爲不髒。 所以我認爲問題在於你從服務器返回的值。

你必須要小心以下內容:格式問題(響應結構,root屬性,...),沒有一個id(或id屬性設置不正確)在不同的順序列出的記錄,記錄和成功沒有設置爲真正。