2011-01-20 143 views
9

我們正在嘗試使用CellTable創建可編輯網格。使用 的情況下,對於習慣於將10鍵輸入到電子表格中的會計人員的相當高的卷數據輸入。我們試圖儘可能地複製電子表格樣式鍵盤導航。GWT中的鍵盤導航CellTable

  1. 有什麼辦法,以避免敲回車進入一個TextInputCell編輯模式 ?當收到焦點 事件時,我試圖覆蓋 TextInputCell.onBrowserEvent()來撥打onEnterKeyDown(),但這不起作用。

  2. 有沒有辦法使用標籤 - 標籤到 列,而不是左箭頭和右箭頭之間導航? CellTable似乎是 硬編碼使用左右箭頭並且很難擴展。

回答

6

經過相當多的努力嘗試之後,我們確定CellTable的擴展性不足以滿足我們的需求。我們最終擴展了GWT的Grid類,從CellTable中獲取設計線索,使其能夠滿足我們的需求。

在我們的用例中,80%的頁面瀏覽量將顯示少於10行,我們永遠不會超過600行10列(< 0.5%的案例超過500行)。我們使用了延遲加載模式,而不是完整的輕量級模式。當網格最初被填充時,僅用於顯示的小部件用於顯示來自基礎值對象的數據。 FocusHandler附加到每個僅顯示的小部件。當用戶單擊或製表顯示小部件時,FocusHander會使用可編輯的小部件將該行的僅顯示小部件換出。

僅顯示窗口小部件僅限於輕量級窗口小部件,如TextBox和CheckBox,因此渲染時間可以接受。在不到2秒內渲染100行×5列。 SuggestBoxes,DateBoxes和其他複合僅限於用作可編輯小部件。

優勢

  1. 靈活使用任何 標準的部件
  2. 可擴展性 - 我們不是通過 限制在 CellTable
  3. 易於發展所做的實現選擇 - 原型在 少比開發3天
  4. 表現不錯,足以適合我們 需求
  5. 標籤的工作開箱即用,你會期望

缺點

  • 還不如可擴展爲CellTable。這 實施不會使 數千行的
  • 我們必須維護它自己 Class Model
+1

是您實現開源。我也有同樣的問題。如果我可以嘗試的話,我會覺得很難過! 謝謝! – Jacob 2011-03-04 08:38:07