Gridx入门(4)
有时候,模块也可能依赖于其他模块。例如,UI模块“paginationBar” 依赖于一个非UI模块“pagination”。 因此当声明PaginationBar模块时,我们也需要请求Paginatioin模块。但我们不需要在创建grid时声明Pagination模块,只是“请求”这个关联模块的源代码即可。如果没有请求这个关联模块,我们就会在控制台中得到如下出错信息,并且该grid很可能不会正确的显示。
[javascript]
Error: Forced/Required Dependent Module 'pagination' is NOT Found for 'paginationBar'
这看起来似乎有点不方便。因为在EnhancedGrid中,所有关联的插件都是自动加载的。但为了提高灵活性,这种做法是不可避免的。因为在EnhancedGrid中,如果一个插件已经自动被其他插件请求了,我们就无法轻松的替换这个插件的实现。另一个好处是,这种做法可以减少一些不可见的源代码加载,从而提高效率。
几乎所有的模块都可以通过grid对象来直接访问。例如:
[javascript]
grid.select.row.selectById(rowId);
grid.select.column.selectById(colId);
grid.sort.sort(colId);
grid.columnResizer.setWidth(colId, 100);
在这种方式下,每个模块都有自己的命名空间,因此他们不会相互冲突。
一个模块可以选择暴露哪些API给grid,已经暴露哪些API给API对象(row/column/cell)。请注意模块名只是暴露给grid的API的标识,这样就可以减少依赖性,并且提高代码的可维护性。
以下是目前支持的非核心模块列表。更多精彩细节我们会在将来的博文中介绍。
[javascript]
1. CellWidget
2. ColumnLock
3. ColumnResizer
4. Dod
5. Edit
6. Focus
7. IndirectSelect
8. Menu
9. NestedSort
10. Persist
11. Printer
12. RowHeader
13. RowLock
14. SingleSort
15. SummaryBar
16. TitleBar
17. Toolbar
18. Tree
19. VirtualVScroller
20. Filter
21. FilterBar
22. Pagination
23. PaginationBar
24. move.Row
25. move.Column
25. dnd.Row
26. dnd.Column
26. select.Row
27. select.Column
28. select.Cell
29. extendedSelect.Row
30. extendedSelect.Column
31. extendedSelect.Cell
32. exporter.CSV
33. exporter.Table
摘自 Dojo中文博客
相关新闻>>
- 发表评论
-
- 最新评论 更多>>