版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/jfok/article/details/37877563
跟我一起学extjs5(20--模块Grid的其它功能的设想,前20节源代码)
经过对自己定义模块和Grid的设计和编码,如今已经能对一个有配置信息的模块来生成界面并进行一些简单的CURD操作。由于这是一个全解释性的前台的架构。因此你想到的不论什么新主意都能够放到全部的模块中。
比方对于“Grid列宽的自己主动适应”这个功能,我们能够在系统设置项里增加“列宽自适应模式”,以下有三个选项:1、不自己主动适应;2、首次载入数据时自己主动适应;3、每次载入数据都自己主动适应。由于列宽自己主动适应须要时间。假设字段非常多,记录非常多会比較慢。因此能够增加这个设置,使用户依据自己的喜好来设置。还能够对每种类型的字段做一些设置。比方日期的显示格式、浮点型的数值要不要加分节符号,小数位数,颜色等等。
以下再介绍一个使用MVVM特性的小功能,在title上显示当前选中的记录的nameField。先截图看看效果:
以下详细的改动,先在Grid.js中将bind的语句改一下
bind : { title : '{tf_title} {selectedNames}' // 数据绑定到ModuleModel中的tf_title 和 // 选中记录的名称 },然后再在 ModuleModel.js中的data中增加属性:
selectedNames : '' //选中的记录的names显示在title上
Grid的记录选中事件在前几节中已经加了,仅仅要改动一下事件函数就能够了,改动ModuleController.js
// 选中的记录发生变化过后的事件 selectionChange : function(model, selected, eOpts) { // 设置删除按钮的状态 this.getView().down('toolbar button#delete')[selected.length > 0 ?
'enable' : 'disable'](); var viewModel = this.getView().getViewModel(); // 以下将组织选中的记录的name显示在title上,有二种方案可供选择。一种是用以下的MVVM特性。另外一种是调用refreshTitle() var selectedNames = '' if (selected.length > 0) { if (!!selected[0].getNameValue()) selectedNames = selectedNames + ' 『<em>' + selected[0].getNameValue() + '</em>' + (selected.length > 1 ?
' 等' + selected.length + '条' : '') + '』'; } viewModel.set('selectedNames', selectedNames); // 改动ModuleModel中的数据,改动好后会自己主动更新bind的title // this.getView().down('grid').refreshTitle(); // 这是不用MVVM特性的做法 },
简单的几句。就又加了一个新的功能。有问题或建议请回复,或与我联系:jfok1972@qq.com。 想下载源代码的能够到我的资源里去下载,或者进入下载页面。