- 浏览: 83782 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
package:
不知楼主 是否试过火狐下面报错.....b.firstChil ...
EXTjs grid双层表头的实现 (源代码和示例) -
少年阿郎:
请把你的demo发到我的邮箱15251855442@163.c ...
Ext DateField控件 - 只选择年月 -
岳阳楼:
提示错误:消息: 'prototype' 为空或不是对象行: ...
Ext DateField控件 - 只选择年月 -
hellostory:
引用执行“清除”操作后,问题解决了。 请问如何执行清除操作。。 ...
SVN错误:Attempted to lock an already-locked dir -
jxxms:
可以用,非常好
Ext DateField控件 - 只选择年月
var monthField = new Ext.ux.MonthField({ id:'month', fieldLabel: '月份', allowBlank:false, readOnly : true, format:'Y年m月', listeners:{"blur":function(){ alert() }} });
JS:
//monthPick.js //---------------- Ext.ux.MonthPicker=Ext.extend(Ext.Component,{ format:"M-y", okText:Ext.DatePicker.prototype.okText, cancelText:Ext.DatePicker.prototype.cancelText, constrainToViewport:true, monthNames:Date.monthNames, startDay:0, value:0, noPastYears:false, initComponent:function () { Ext.ux.MonthPicker.superclass.initComponent.call(this); this.value=this.value? this.value.clearTime():new Date().clearTime(); this.addEvents( 'select' ); if(this.handler) { this.on("select",this.handler,this.scope||this); } }, focus:function () { if(this.el) { this.update(this.activeDate); } }, onRender:function (container,position) { var m=['<div style="width: 200px; height:175px;"></div>'] m[m.length]='<div class="x-date-mp"></div>'; var el=document.createElement("div"); el.className="x-date-picker"; el.innerHTML=m.join(""); container.dom.insertBefore(el,position); this.el=Ext.get(el); this.monthPicker=this.el.down('div.x-date-mp'); this.monthPicker.enableDisplayMode('block'); this.el.unselectable(); this.showMonthPicker(); if(Ext.isIE) { this.el.repaint(); } this.update(this.value); }, createMonthPicker:function () { if(!this.monthPicker.dom.firstChild) { var buf=['<table border="0" cellspacing="0">']; for(var i=0;i<6;i++) { buf.push( '<tr><td class="x-date-mp-month"><a href="#">',this.monthNames[i].substr(0,3),'</a></td>', '<td class="x-date-mp-month x-date-mp-sep"><a href="#">',this.monthNames[i+6].substr(0,3),'</a></td>', i==0? '<td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-prev"></a></td><td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-next"></a></td></tr>': '<td class="x-date-mp-year"><a href="#"></a></td><td class="x-date-mp-year"><a href="#"></a></td></tr>' ); } buf.push( '<tr class="x-date-mp-btns"><td colspan="4"><button type="button" class="x-date-mp-ok">', this.okText, '</button><button type="button" class="x-date-mp-cancel">', this.cancelText, '</button></td></tr>', '</table>' ); this.monthPicker.update(buf.join('')); this.monthPicker.on('click',this.onMonthClick,this); this.monthPicker.on('dblclick',this.onMonthDblClick,this); this.mpMonths=this.monthPicker.select('td.x-date-mp-month'); this.mpYears=this.monthPicker.select('td.x-date-mp-year'); this.mpMonths.each(function (m,a,i) { i+=1; if((i%2)==0) { m.dom.xmonth=5+Math.round(i*.5); }else { m.dom.xmonth=Math.round((i-1)*.5); } }); } }, showMonthPicker:function () { this.createMonthPicker(); var size=this.el.getSize(); this.monthPicker.setSize(size); this.monthPicker.child('table').setSize(size); this.mpSelMonth=(this.activeDate||this.value).getMonth(); this.updateMPMonth(this.mpSelMonth); this.mpSelYear=(this.activeDate||this.value).getFullYear(); this.updateMPYear(this.mpSelYear); this.monthPicker.show(); //this.monthPicker.slideIn('t', {duration:.2}); }, updateMPYear:function (y) { if(this.noPastYears) { var minYear=new Date().getFullYear(); if(y<(minYear+4)) { y=minYear+4; } } this.mpyear=y; var ys=this.mpYears.elements; for(var i=1;i<=10;i++) { var td=ys[i-1],y2; if((i%2)==0) { y2=y+Math.round(i*.5); td.firstChild.innerHTML=y2; td.xyear=y2; }else { y2=y-(5-Math.round(i*.5)); td.firstChild.innerHTML=y2; td.xyear=y2; } this.mpYears.item(i-1)[y2==this.mpSelYear?'addClass':'removeClass']('x-date-mp-sel'); } }, updateMPMonth:function (sm) { this.mpMonths.each(function (m,a,i) { m[m.dom.xmonth==sm?'addClass':'removeClass']('x-date-mp-sel'); }); }, selectMPMonth:function (m) { }, onMonthClick:function (e,t) { e.stopEvent(); var el=new Ext.Element(t),pn; if(el.is('button.x-date-mp-cancel')) { this.hideMonthPicker(); //this.fireEvent("select", this, this.value); } else if(el.is('button.x-date-mp-ok')) { this.update(new Date(this.mpSelYear,this.mpSelMonth,(this.activeDate||this.value).getDate())); //this.hideMonthPicker(); this.fireEvent("select",this,this.value); } else if(pn=el.up('td.x-date-mp-month',2)) { this.mpMonths.removeClass('x-date-mp-sel'); pn.addClass('x-date-mp-sel'); this.mpSelMonth=pn.dom.xmonth; } else if(pn=el.up('td.x-date-mp-year',2)) { this.mpYears.removeClass('x-date-mp-sel'); pn.addClass('x-date-mp-sel'); this.mpSelYear=pn.dom.xyear; } else if(el.is('a.x-date-mp-prev')) { this.updateMPYear(this.mpyear-10); } else if(el.is('a.x-date-mp-next')) { this.updateMPYear(this.mpyear+10); } }, onMonthDblClick:function (e,t) { e.stopEvent(); var el=new Ext.Element(t),pn; if(pn=el.up('td.x-date-mp-month',2)) { this.update(new Date(this.mpSelYear,pn.dom.xmonth,(this.activeDate||this.value).getDate())); //this.hideMonthPicker(); this.fireEvent("select",this,this.value); } else if(pn=el.up('td.x-date-mp-year',2)) { this.update(new Date(pn.dom.xyear,this.mpSelMonth,(this.activeDate||this.value).getDate())); //this.hideMonthPicker(); this.fireEvent("select",this,this.value); } }, hideMonthPicker:function (disableAnim) { Ext.menu.MenuMgr.hideAll(); }, showPrevMonth:function (e) { this.update(this.activeDate.add("mo",-1)); }, showNextMonth:function (e) { this.update(this.activeDate.add("mo",1)); }, showPrevYear:function () { this.update(this.activeDate.add("y",-1)); }, showNextYear:function () { this.update(this.activeDate.add("y",1)); }, update:function (date) { this.activeDate=date; this.value=date; if(!this.internalRender) { var main=this.el.dom.firstChild; var w=main.offsetWidth; this.el.setWidth(w+this.el.getBorderWidth("lr")); Ext.fly(main).setWidth(w); this.internalRender=true; if(Ext.isOpera&&!this.secondPass) { main.rows[0].cells[1].style.width=(w-(main.rows[0].cells[0].offsetWidth+main.rows[0].cells[2].offsetWidth))+"px"; this.secondPass=true; this.update.defer(10,this,[date]); } } } }); Ext.reg('monthpicker',Ext.ux.MonthPicker); Ext.ux.MonthItem=function (config) { Ext.ux.MonthItem.superclass.constructor .call(this,new Ext.ux.MonthPicker(config),config); this.picker=this.component; this.addEvents('select'); this.picker.on("render",function (picker) { picker.getEl().swallowEvent("click"); picker.container.addClass("x-menu-date-item"); }); this.picker.on("select",this.onSelect,this); }; Ext.extend(Ext.ux.MonthItem,Ext.menu.Adapter,{ onSelect:function (picker,date) { this.fireEvent("select",this,date,picker); Ext.ux.MonthItem.superclass.handleClick.call(this); } }); Ext.ux.MonthMenu=function (config) { Ext.ux.MonthMenu.superclass.constructor .call(this,config); this.plain=true; var mi=new Ext.ux.MonthItem(config); this.add(mi); this.picker=mi.picker; this.relayEvents(mi,["select"]); }; Ext.extend(Ext.ux.MonthMenu,Ext.menu.Menu,{ cls:'x-date-menu' }); Ext.ux.MonthField=function (cfg) { Ext.ux.MonthField.superclass.constructor .call(this,Ext.apply({ },cfg||{ })); } Ext.extend(Ext.ux.MonthField,Ext.form.DateField,{ format:"Y-m", triggerClass:"x-form-date-trigger", menuListeners:{ select:function (m,d) { this.setValue(d.format(this.format)); }, show:function () { this.onFocus(); }, hide:function () { this.focus.defer(10,this); var ml=this.menuListeners; this.menu.un("select",ml.select,this); this.menu.un("show",ml.show,this); this.menu.un("hide",ml.hide,this); } }, onTriggerClick:function () { if(this.disabled) { return ; } if(this.menu==null) { this.menu=new Ext.ux.MonthMenu(); } Ext.apply(this.menu.picker,{ }); this.menu.on(Ext.apply({ },this.menuListeners,{ scope:this })); this.menu.show(this.el,"tl-bl?"); } }); Ext.reg("monthfield",Ext.ux.MonthField);
评论
8 楼
少年阿郎
2012-10-11
请把你的demo发到我的邮箱15251855442@163.com
7 楼
岳阳楼
2012-07-31
提示错误:
消息: 'prototype' 为空或不是对象
行: 7
字符: 1533
代码: 0
消息: 'prototype' 为空或不是对象
行: 7
字符: 1533
代码: 0
6 楼
jxxms
2011-11-04
可以用,非常好
5 楼
jiaguwen123
2011-09-21
提示错误:
消息: 'prototype' 为空或不是对象
行: 7
字符: 1533
代码: 0
消息: 'prototype' 为空或不是对象
行: 7
字符: 1533
代码: 0
4 楼
雾茫茫
2011-04-11
怎么用?
3 楼
bushkarl
2011-03-26
我也是出错哦!不能用,
2 楼
java_miner
2011-03-18
用不了,提示错误 sp is undefined
1 楼
艾建锋
2011-01-11
谢谢 辛苦了
借用了下 效果不错。哈哈
借用了下 效果不错。哈哈
发表评论
-
ExtJs grid中常用属性 总结
2011-08-29 11:07 2417问题:使用Grid时,如果出现列标题与复选框错位 使用定 ... -
ExtJS 中xtype和 class对照表
2011-08-25 08:55 1026xtype Class ... -
EXTjs grid双层表头的实现 (源代码和示例)
2011-08-11 14:34 2935源代码:加载到页面中的js文件GridDoubleHead ... -
Extjs Grid相关组件及属性
2011-08-11 14:14 1614Ext.grid.GridPanel ... -
EXT的formpanel中的横向排列布局
2011-06-29 09:52 3201利用formpanel的form和column属性混合使用来 ... -
EXT中将grid的sm选择项动态添加到ComboBox
2011-06-29 09:09 1239//创建ComboBox的数据源 var itemDs = ... -
EditorGridPanel组件中根据条件取消某一行的编辑状态
2011-03-16 10:40 1103var dataClearGrid = new Ext.gri ... -
Ext.grid.GridPanel中的符合条件的某行不能选择
2011-03-15 14:10 1709让Ext.grid.GridPanel不能选择,即令Ext.g ... -
Ext中从grid 到tree的拖拽
2011-03-15 09:23 1489// 使用一个Json数据结构作为tree的本地数据源 ... -
Ext.grid.ColumnModel 后期通过setEditor设置editor
2011-02-28 15:52 3360Ext.grid.EditorGridPanel 顾名思义就是 ... -
Ext.ux.form.FileUploadField 重置的问题
2011-02-24 13:52 1587Js代码 text: '重置', ... -
EXT 树的配置详细属性介绍
2011-02-23 17:37 12931、Ext.tree.TreePanel 主要配 ... -
Ext.data.Store
2011-02-10 15:08 1021Ext.data.Store是EXT中用来进行数据交换和数据交 ... -
ext中常见的几种布局布局Layout
2010-12-02 14:02 3090所谓布局就是指容器组件中子元素的分布、排列组合方式。Ext的所 ... -
如何将string类型的数据如何显示在Ext的datefield中
2010-11-18 10:42 1258//返回的String的数据先格式化处理 obj.month ... -
动态修改Ext控件的readOnly属性
2010-11-17 11:37 1901Ext 控件的readOnly属性是可以在控件初始化过程中 ... -
EXT表单组件常见属性介绍(三)
2010-11-17 11:25 1737本范例展示如何使用表单的各种组件。 下拉框组件展示了5种 ... -
EXT表单组件常见属性介绍(二)
2010-11-17 11:24 13651、Ext.form.Hidden 2、Ex ... -
EXT表单组件常见属性介绍(一)
2010-11-17 11:23 11781、Ext.form.Action 配置项: ... -
ext的 renderer的function参数详细介绍
2010-11-12 09:31 1520renderer:function(value, cellm ...
相关推荐
总结来说,"Ext DateField控件 - 只选择年月插件"是一个方便易用的工具,能够帮助开发者在Ext JS应用程序中实现更精细的日期选择功能,专注于年月的选取,从而满足特定场景下的用户需求。通过合理地配置和集成,你...
然而,通过扩展,我们可以增加更多的选择选项,例如只选择年份、月份或者年月。 在标题和描述中提到的`Ext`扩展`dateField`时间控件,其主要目的是提供更灵活的日期选择体验。这可能涉及到以下关键功能: 1. **...
Extjs DateField控件 - 只选择年份(找了很久发现网上只有选择年月的控件,于是基于extjs年月控件设计了只选择年份的控件)
总的来说,要理解并实现"Ext2的日期组件只选择年月"的功能,需要熟悉ExtJS的组件系统,尤其是`DatePicker`和`DateField`组件的API,以及可能涉及的源码修改。同时,查阅相关博文章节会提供具体的实现步骤和技巧,...
一个对Ext年月日控件进行更改的Js 更改后的控件只能选择年月 对月统计或其他只选择年月的方面 非常好用 在写datefield控件的时候 加上 plugins: 'monthPickerPlugin', 就可以了 format设置为'Y-m'
往往是需要修改源码的方法,如: 修改Ext.DatePicker使得Ext.form.DateField只选择年月 等,但是修改源码有个不好的地方,如果ext升级了,又需要改一次,很不方便.干脆,就重写了一个月份选择控件.使用接口和DateField类似,...
可动态显示年月,年月日,年月日时分,具体用法:{ xtype : 'textfield', anchor : '90%', fieldLabel:"生效时间" + CONSTANT.RED_FONT, allowBlank: false, name : ...
1.此控件支持Ext3.2及以上版本 2.用法与Ext.form.DateField一样,xtype:'datetimefield' 3.不需要导入css或其他js 4.解决某些插件导入会显示对象未定义问题
在EXT JS 2.0框架中,DateTimeField控件是一个非常实用的组件,它扩展了基本的DateField控件,提供了更丰富的日期时间选择功能,包括小时、分钟和秒的显示与选择。这个控件是为了解决用户需要输入精确到秒的日期时间...
在ExtJS4中,日期控件是开发人员经常使用的组件之一,它允许用户选择日期、时间或两者兼有,以便进行数据输入或显示。本篇文章将深入探讨ExtJS4中的日期控件,特别是那些包含年、月、日、时、分、秒的复杂日期时间...
总结起来,EXTJS升级版时间控件是一个灵活且强大的日期选择组件,通过自定义`format`参数,能够满足不同场景下的日期选择需求,包括只选择年、月或保持原样。这使得EXTJS的用户界面更加友好,用户体验更佳。
由于extjs3.0自己封装的时间不能够选择时分秒,给大家开发...虽然网上有ext2.0的日期扩展控件,但在3.0中不能用。公司现在项目正用了,因此我就对extjs3.0时间控件的扩展,实现了可选择时分秒功能。希望对大家有帮助。