2013-10-23 66 views
0

中的網格面板標題中重新排列方向圖像(三角形)的狀態有一個網格面板。在一些用戶操作之後(例如轉到另一個網格頁面或將過濾器應用到網格列或更改某列中的排序順序(排序在我的情況下是遠程的)),請求會提交給服務器,並返回適當的結果。 但在某些情況下,我需要得到用戶的確認才能繼續請求。如何在ExtJS 4

人們發現,最便捷的方式來中斷請求提交,並展現給用戶的確認消息趕了商店的「beforeload」事件並返回「假」,如果用戶說不

所以,一個問題描述如下。 有我們最初的狀態(參見選方向): enter image description here

然後用戶在此列更改排序順序,要求即將被提交到服務器,但用戶得到一個確認消息,說「不」,請求被中止。所以網格中的數據沒有改變(這是正確的),但在標題中的圖像改變到另一個方向 enter image description here

那麼,有沒有辦法返回'三角形排序'圖像的正確狀態? 在此先感謝

回答

0

試試這個:

var headerEl = grid.headerCt.items.get(colIndex).el; 
el.removeCls('x-column-header-sort-ASC') 
el.addCls('x-column-header-sort-DESC') 
+0

最終我發現了一些基於您的解決方案的變體,但不幸的是還有一個問題。應用樣式以正確的方式改變「三角形」圖像,但是網格本身具有(我不知道該怎麼說)狀態。這是什麼意思?例如列中的默認排序是ASC,用戶點擊按照DESC順序進行排序,然後用戶在確認對話框中說'不','三角'圖像看起來像'ASC',這沒關係。但如果用戶再次單擊DESC排序,則不會發生任何事情,因爲網格已處於「DESC狀態」。它記得剛剛點擊了DESC – Stanislau

0

所以,這對我來說工作正常,完整的解決方案是:

  1. 製備步驟:儲存的地方,你需要的所有狀態(在我案例欄和排序順序)

  2. 將CSS更改爲@kevhender建議

  3. invoke 'your_grid_panel'.headerCt.clearOtherSortStates('saved_column')。因爲用戶可以點擊任何列,除了'saved_column'之外,您必須清除所有列。

  4. 要做'saved_column'.sortState = 'saved_sorting_order'。它可以避免我在前面的回答的評論中描述的問題。