置顶 跟我一起学extjs5(20模块Grid的其他功能的设想,前20节源码)

跟我一起学extjs5(20--模块Grid的其他功能的设想,前20节源码)


        经过对自定义模块和Grid的设计和编码,现在已经能对一个有配置信息的模块来生成界面并进行一些简单的CURD操作。由于这是一个全解释性的前台的架构,因此你想到的任何新主意都可以放到所有的模块中。
        比如对于“Grid列宽的自动适应”这个功能,我们可以在系统设置项里加入“列宽自适应模式”,下面有三个选项:1、不自动适应;2、首次加载数据时自动适应;3、每次加载数据都自动适应。因为列宽自动适应需要时间,如果字段很多,记录很多会比较慢,因此可以加入这个设置,使用户根据自己的喜好来设置。还可以对每种类型的字段做一些设置,比如日期的显示格式、浮点型的数值要不要加分节符号,小数位数,颜色等等。
        下面再介绍一个使用MVVM特性的小功能,在title上显示当前选中的记录的nameField。先截图看看效果:
置顶

        跟我一起学extjs5(20模块Grid的其他功能的设想,前20节源码)


置顶

        跟我一起学extjs5(20模块Grid的其他功能的设想,前20节源码)


        下面具体的修改,先在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特性的做法
	},

        简单的几句,就又加了一个新的功能。有问题或建议请,或与我联系:[email protected]

        想下载源码的可以到我的资源里去下载,或者点击打开链接进入下载页面。

 














更多相关文章
  • 目录管理 1.mkdir 创建空目录 -p 在创建目录的时候路径不存在时自动创建路径目录 -v 详细信息 , 可以显示创建过程 同时创建多个 /a/b/{c,d/e} 花括号展开 {a,b}_{c,d} == a_c , a_d , b_d , b_c 2.tree 查看文件或目录数 3.rmdir ...
  • 今天遇到一个问题,就是“NeatUpload大文件上传控件而导致Nonfile portion > 4194304 bytes错误”,百度后发现了一个解决方法,跟大家分享下: NeatUpload是一个开源的大文件上传控件,非常的强大,支持文件类型过滤.上传进度条显示.多文件上传等强大的功能. ...
  • 1.调用cclayer的方法setAccelerometerEnabled(true)在层里启用重力感应 2.启用重力感应后,重力方向变化时,会回调cclayer的方法didAccelerate( CCAcceleration* pAccelerationValue ),在自己派生的层里重写此方法, ...
  • 最近都在做linq+ext.net的开发.这两天想学习下MVC和ef,刚好,在看ext.js的时候也喜欢上了esayui,所以就想用mvc+ef+esayui做一个汽车网后台管理来加强下.在这里也把我的经验和大家分享下.好了开始项目的准备工作,先准备下EsayUI的一些文件,可以到http://ww ...
  • Ctrl+E,D -格式化全部代码 Ctrl+A+K+FCtrl+E,F -格式化选中的代码 Ctrl+K+FCTRL + SHIFT + B生成解决方案 Alt+B+B 或 F6 生成当前项目 Alt+B+U 或 Shift+F6CTRL + O 打开文件CTRL + SHIFT + O打开项目C ...
  • (二) 你适合当程序员吗,你知道编程序是怎么回事吗?1. 程序员意味着要编程序.(如果你仅仅想得到一份高薪水的工作,喝喝咖啡就等老板发薪水,我奉劝你还是另找一份更合适的工作,譬如练摊,真的,兄弟,这份工作不适合你)2.你是学文的还是学理的,编程序也许需要浪漫,但更需要逻辑和严谨.(说坦白点就是,在你 ...
一周排行
  • https://leetcode.com/problems/single-number-ii/   很无耻的又一次使用了黑暗料理... class Solution: # @param {integer[]} num ...
  • 为什么会有DevOps的出现? DevOps这个新理念的出现,是为了应对IT环境中普遍面临的一些挑战. 敏捷的出现缩小了上图所示的第一个隔阂,也就是商业需求和开发之间的隔阂,有效的加快了产品开发的周期和效率.那么这无 ...
  • 有一个需求:把某从mysql 里导出的的数据表 数据里的  Insert语句 转换成 update 语句. 需要把如下的语句: insert into `table` (`ID`, `code`, `detail`) ...
  • KMP 算法 KMP(Knuth-Morris-Pratt)算法在字符串查找中是很高效的一种算法,假设文本字符串长度为n,模式字符串长度为m,则时间复杂度为O(m+n),最坏情况下能提供线性时间运行时间保证. < ...
  • jira4.4.1安装流程 1 下载 wget http://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.4.1-x64.bin ...
  • 新闻来源:重庆晚报你可能不知道有一家名叫[x+1]的公司,但这家公司知道你的很多事情.卡丽·伊萨克只是曾经点击过该公司的网站,[x+1]便对她的基本信息了如指掌:住在科罗拉多的斯普林斯市,是个年轻的母亲,每年收入约5 ...
  • 厌倦了Eclipse的白底黑子,我们来更换下Eclipse的主题颜色,让眼睛更舒服一点 首先先进入网址:http://eclipsecolorthemes.org/   选择一个主题进入,点击进入如下: 如图点击下载 ...
  • 最近在看一些在线机器学习的东西,看到了trident-ml, 觉得比较有意思,就翻译了一下,方便有兴趣的读者学习. 本文为作者(掰棒子熊)翻译自https://github.com/pmerienne/trident ...
  • 好的,SASS实现的圆形动画菜单,效果和主要原理如下图所示. 在线研究点这里,下载收藏点这里. Are you ready? Go-> html文件 css中我们使用了sass的scss语法,并且使用了comp ...
  • 36氪报道过的音乐演出服务平台Pogo看演出近日宣布获得音乐公司摩登天空的投资,双方除了资本交易还会在业务上深度合作.Pogo看演出的创始人李志明向36氪提到,对于立足于演出资料库,向音乐票务.音乐节.电商都有涉猎的 ...