Gridx入门(3)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-17 09:43 点击:

理论上说,一个Gridx模块可以只是一个dojo类,并可以放在任何地方。但通常情况下,Gridx模块继承自gridx/core/_Module 并且放在gridx/modules目录下。如果要在一个grid实例中添加一个模块,首先我们需要“请求”该模块的源代码,然后在创建grid的时候声明之。

[javascript]
require([ 
    'dojo/store/Memory', 
    'gridx/Grid', 
    'gridx/core/model/cache/Sync', 
    'gridx/modules/SingleSort', //Require module source code 
    'gridx/modules/ColumnResizer'   //Require module source code 
], function(Store, Grid, Cache, Sort, ColumnResizer){ 
    ...... 
    var grid = new Grid({ 
        cacheClass: Cache, 
        store: store, 
        structure: columns, 
        modules: [ 
            Sort,       //Declare modules in a grid instance 
            ColumnResizer   //Declare modules in a grid instance 
        ] 
    }); 
}); 
为一个grid实例声明模块只需要将所有模块类放在一个数组中。这种声明方法比之EnhancedGrid的plugin更加简单明了。因为相对于隐式使用的类,例如string类,被“请求”的模块类(Sort和ColumnResizer) 是显式地使用的。但是当我们想要传递一些初始参数,则需写成:

[javascript]
modules: [ 
       { 
           moduleClass: ColumnResizer, 
           detectWidth: 10 
       }, 
       ...... 
   ] 
如果你感觉这种写法不够酷,那么还有另外一种写法,将其声明成grid的参数

[javascript]
var grid = new Grid({ 
       ...... 
       modules: [ 
           ColumnResizer 
       ], 
       columnResizerDetectWidth: 10 
   }); 
如果一个模块参数声明成grid的参数,它必须以模块名开头,这样不同模块的参数才不会相互冲突。

Gridx模块被设计成可替换的。这意味着如果你不喜欢某一个模块,你完全可以实现你自己的模块,同时不需要太担心它是否会对grid的其他部分或者该模块之前的实现产生不可预料的影响。你只需要遵循该模块所有的API,这样你的实现就能很好的与其他模块无缝合作。这里的“API集合”是用模块名来标识的。是的,跟声明grid参数一样将模块名作为前缀。例如,模块 gridx/modules/select/Row/ 名为“selectRow”, 这意味着它实现了所有“selectRow”的API。现有另一模块 gridx/modules/extendedSelect/Row, 它也名为“selectRow”, 这意味着该模块实现了同样的API集合。因此当另外一个模块依赖于行选择的特性,它只需要依赖于这个API集合,而不是某一个特定的实现。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Gb2312转utf-8编码的方法(vbs+js)
  • 如何使用Ajax技术开发Web应用程序(1)
  • js跳转路径问题
  • JavaScript模仿桌面窗口
  • 2011年度最佳 jQuery 插件
  • jquery学习笔记---jqGrid学习笔记 完整整理
  • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
  • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
  • 我是如何去了解jquery的(六),案例之幻灯片轮换
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1