SpreadJS纯前端表格控件是基于 HTML5 的 JavaScript 电子表格和网格功能控件,提供了完备的公式引擎、排序、过滤、输入控件、数据可视化、Excel 导入/导出等功能,适用于 .NET、Java 和移动端等各平台在线编辑类 Excel 功能的表格程序开发。
在上一篇文章中,我们学习了SpreadJS 在 Angular2 中支持绑定的属性,今天我们来介绍SpreadJS 在 Angular2 中支持哪些事件。
首先 Angular2 绑定事件的方法是在 template 中使用"( )"设置绑定事件,然后在导出模块中编写事件触发的方法,像这样:
@Component({ selector:'my-app',template: `<gc-spread-sheets(workbookInitialized)="workbookInit($event)"> </gc-spread-sheets>`,}) exportclassAppComponent{ workbookInit(args){ //dosomething} }
其中 $event 为Angular2的关键字,类似于 window.event,SpreadJS对 $event 做了一些扩展,如果需要在事件中对 SpreadJS 相关的处理,那么可以传入 $event 来获取事件触发的默认参数,例如:
workbookInitialized 事件中传入 $event 参数后,在可以通过 args.spread 获取 spread 的实例对象。这里对workbookInitialized事件做一个说明,workbookInitialized中可以通过 args.spread 获取 spread 对象,通过 spread 对象理论上我们可以在这里做任何SpreadJS功能的事情,这里的事情是不通过 Angular2 来进行处理的。这里可以做一些 Angular2 中不支持绑定的SpreadJS功能,例如:
Angular2 支持的SpreadJS属性中没有筛选功能,那么如果我们要在 Angular2 的工程中实现一个列的筛选功能我们应该怎么做呢?以上面的代码为例,我们可以在 workbookInit 方法中使用:
varspread=args.spread; varsheet=spread.getActiveSheet(); varcolumncount=sheet.getColumnCount(); varrange=newGC.Spread.Sheets.Range(-1,-1,columncount); varrowFilter=newGC.Spread.Sheets.Filter.HideRowFilter(range); sheet.rowFilter(rowFilter);
详细的事件说明,请参考博客。
需要注意的是,所有的事件都是绑定在 gc-spread-sheets标签上的,绑定在其他标签上是无效的。
以上就是如何用 Angular2 构建 SpreadJS 项目的全部内容,相信大家通过第一篇的基础搭建,再参考第二遍的属性与第三篇的事件文档后,已经可以轻松的在 Angular2 的项目中使用 SpreadJS 了。
SpreadJS V10.2 版本即将发布,更多更好的功能尽在新版本中,敬请期待!
登录SpreadJS 官网,了解更多。