ExtJS 日历Calendar 控件 使用
ExtJS6 提供了日历控件,但是官网的demo贼坑,只讲了ajax使用,经过不懈努力地,无头苍蝇式尝试,终于摸到了使用门槛。
首先
在具体项目里,引用calendar的包。
其次
设定好calendar的store,这个很重要。因为,整个日历控件,最主要的就是store对应的事务。你在日历控件上看到的如下图中,每一条,都是一个event
这里采用的store是 memory 内存的模式,不用ajax。我这里有四种事务,有的时候是,某一类事务更新,有的时候是全更新
{type: 'calendar-calendars',autoLoad: true,asynchronousLoad: true, //允许异步加载proxy: {type: 'memory',data: [{id: 1,title: 'Plan',color: '#f69218',eventStore: {model: 'Task.model.calendar.CalMonthEvent', //自定义的model改变了一些东西可以用原本的model,不配置就是原生的asynchronousLoad: true,proxy: {type: 'memory',data: null,reader: {type: 'json',}}}}, {id: 2,title: 'Act',color: '#02b8d0',eventStore: {model: 'Task.model.calendar.CalMonthEvent',asynchronousLoad: true,proxy: {type: 'memory', //采用内存模式data: null,reader: {type: 'json',}}}}, {id: 4,title: 'ToExcSummary',color: '#6f95e1',eventStore: {model: 'Task.model.calendar.CalMonthEvent',asynchronousLoad: true,proxy: {type: 'memory',data: null,reader: {type: 'json',}}}}, {id: 5,title: 'ExSummary', //已批小结color: '#8bc34a',eventStore: {model: 'Task.model.calendar.CalMonthEvent',asynchronousLoad: true,proxy: {type: 'memory',data: null}}}]}
设置好后,把他放入calendar控件中
{xtype: 'calendar-weekview',//可以采用calendar的其他视图 这里采用周视图flex: 1,gestureNavigation: false,store:{type: 'calendar-calendars',autoLoad: true,asynchronousLoad: true, //允许异步加载proxy: {type: 'memory',data: [{id: 1,title: 'Plan',color: '#f69218',eventStore: {model: 'Task.model.calendar.CalMonthEvent', //自定义的model改变了一些东西可以用原本的model,不配置就是原生的asynchronousLoad: true,proxy: {type: 'memory',data: null,reader: {type: 'json',}}}}, {id: 2,title: 'Act',color: '#02b8d0',eventStore: {model: 'Task.model.calendar.CalMonthEvent',asynchronousLoad: true,proxy: {type: 'memory', //采用内存模式data: null,reader: {type: 'json',}}}}, {id: 4,title: 'ToExcSummary',color: '#6f95e1',eventStore: {model: 'Task.model.calendar.CalMonthEvent',asynchronousLoad: true,proxy: {type: 'memory',data: null,reader: {type: 'json',}}}}, {id: 5,title: 'ExSummary', //已批小结color: '#8bc34a',eventStore: {model: 'Task.model.calendar.CalMonthEvent',asynchronousLoad: true,proxy: {type: 'memory',data: null}}}]}}
动态赋值
给calendar对象的eventStore对象 动态赋值,注意 是eventStore
var store = calendar-weeksview对象.getStore();
store.getAt(0)._eventStore.loadData(r[0]);//计划
store.eventSource.activeLoad = false;
store.getAt(1)._eventStore.loadData(r[1].concat(r[2]));//r[1]未批注活动 r[2]批注过的活动
store.eventSource.activeLoad = false;
store.getAt(2)._eventStore.loadData(r[3]);//未批注的小结
store.eventSource.activeLoad = false;
store.getAt(3)._eventStore.loadData(r[4]);//已批注的小结
为何每个loadData前,都有个 xxx.activeLoad = true——主要是,
在执行了第一句 loadData后,就在此时 store.eventSource对象,神不知鬼不觉地,将activeLoad 变成了 true
而底层的刷新event的方法里,又有个方法是检验这个值的
如果不加上,就会造成部分事务不被显示的问题,如下图
总不能改底层吧,虽然改了可能也没啥影响,但是还是在自己的代码上动脑筋
每次loadData完,重更下 activeLoad属性即可
一个简单的demo:(注意使用时 把 里面 的startDate和endDate 改一下)
ExtJS 日历控件 demo (modern版本)
经常有人私信我最后的动态图(日历导航+月视图动态)的源码,我把部分逻辑源码放在资源里,可以下载参考下
ExtJS 日历Calendar 控件 使用相关推荐
- ASP.NET 在vs中使用Calendar控件 制作一个日历 并标注节假日
Calendar控件 Calendar控件可以说用户方便.准确地选择日期或查看与日期相关的数据.当创建Calendar控件中的每个日期单元格均会引发DayRender事件,通过DayRender事件的 ...
- vs2010中Calendar控件的一些使用
一.返回指定日期前后的某一日期; // Sets a DateTime to April 3, 2002 of the Gregorian calendar. DateTime myDT ...
- vant 2 Calendar控件IOS下空白
今天写代码发现 vant2 Calendar控件的一个BUG. 具体体现为在IOS的真实手机上,某些机型打开后日历显示一片空白,拖动一下就又恢复了正常显示出来了. 使用了解决办法模拟滚动下.关键是时机 ...
- ASP.NET Calendar 控件
ASP.NET Calendar 控件 http://www.w3school.com.cn/aspnet/control_calendar.asp 转载于:https://www.cnblogs.c ...
- WPF- 关于自定义Calendar控件
由于项目对更改日期 时间的需要,接触了一下Calendar控件.结果发现在这么强大的控件的背后,微软其实并没有为开发人员留有很强的扩展性. (项目要求的Calendar控件能对一些特定的日期进行特殊处 ...
- ExtJs 分组表格控件----监听
ExtJs 分组表格控件----监听 2013年8月1日 10:59 如图,点击expand可以展开所有的分组,collapse可以合并所有的列,toggle和toggleone展开合并一个分组 Ex ...
- .NET DataGridView 单元格添加日历选择控件
.NET 使用datagridview 在单元格中加入日历选择控件的方法 在最近的项目改动中,需要在单元格的日期列中用日历选择的方式提供选择,翻阅了许多的资料 终于还是解决了问题 现在记录一下学习过程 ...
- ASP.NET Calendar 控件在中文服务器上显示为英文星期的处理
同样的一个软件,部署在十几台服务器上,不同的客户来使用,其中一个使用了Calendar控件的页面,在大多数客户的计算机上都显示为中文,但是有个别服务器输出到客户端显示为英文.检查并修改了IE浏览器的语 ...
- calendar控件使用 extjs_ExtJs定制日历控件——自动加载更新(日历控件显示)
将定制的日历控件放到一个Panel里显示,其结构如下: , { border: true, id: 'page', animCollapse : true, width: 1050, height: ...
最新文章
- AI 初学者必须要了解的术语盘点
- 【C++】引用与变量
- HDU - 3538 A sample Hamilton path(最短哈密顿路径+状压dp)
- VMware Workstation 运行出现“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”解决方案
- C++ 中 new 操作符内幕:new operator、operator new、placement new
- 【语音识别】基于matlab GUI BP神经网络0到10数字语音识别【含Matlab源码 672期】
- 使用vue模拟通讯录列表,对中文名拼音首字母提取并排序
- 怎样开启无线热点服务器,在Ubuntu系统的电脑上开启无线热点全攻略
- 2022-2028年中国中频加热设备行业市场发展调研及未来前景规划报告
- RaisAjax结合
- 笔记本上开启小键盘的快捷键
- 怎么查看php-fpm的错误日志,php fpm如何开启错误日志
- sqlite3数据库损坏修复
- BDB (Berkeley DB)数据库简介(转载)
- kubernetes 入门介绍
- 听红楼 第十八回 隔珠帘父女勉忠勤 搦湘管姊弟裁题咏
- 两地控制的项目要求_两地控制一盏灯
- Chapter1:监督学习、无监督学习:AndrewNg吴恩达《机器学习》笔记
- 用matlab绘制树叶,风景速写教程:树叶速写画法
- 一季度理赔报告显示,恶性肿瘤仍为主要风险,年金险、终身寿险备受青睐 | 美通社头条...
热门文章
- 如何使用ABBYY FineReader 14创建Excel电子表格
- python股票交易接口_tushare开源股票交易接口基于python实现技术
- java实现图片切割_【Java】K-means算法Java实现以及图像切割
- 计算机制作油画图片素材,油画日常练习,如何运用照片素材?
- 沉入海底 2 年的微软数据中心浮出水面:故障率只有陆地上的 1/8
- Super-resolution:Camera Lens Super-Resolution(论文解读二十)
- 学历不够怎么办?你还有这些方式可以落户成都,抓紧了解
- docker搭建ngnix+php
- 爱奇艺2020官方下载_爱奇艺视频如何上传
- CSS3利用text-shadow属性实现多种效果文字特效