当前位置: 代码迷 >> JavaScript >> 用My97扩充成的ExtJs日期时间插件
  详细解决方案

用My97扩充成的ExtJs日期时间插件

热度:147   发布时间:2012-10-27 10:42:26.0
用My97扩展成的ExtJs日期时间插件

所有关联代码均在附件中下载

示例如下:

?

/**
 * 日期时间控件,可单独显示日期,或日期时间。格式可自己设置。和myDate97设置一样
 * @class Ext.form.DateTimeField
 * @extends Ext.form.TriggerField
 */
Ext.form.DateTimeField = Ext.extend(Ext.form.TriggerField, {
	/**
	 * @param {Array} date97配置列表
	 * @type 
	 */
	dateConfig:null,
	/**
	 * @param {Boolean} 是否显示时间,默认为不显示
	 */
	time:false,
	triggerClass : 'x-form-date-trigger',
	defaultAutoCreate : {tag : "input",type : "text",size : "10",autocomplete : "off"},
	initComponent : function() {
		Ext.form.DateField.superclass.initComponent.call(this);
		this.initDate97js();
		this.initDateConfig();
	},
	onTriggerClick : function(e) {// 点击查找按钮时
		if (this.disabled||this.readOnly) {
			return;
		}
		this.onFocus({});
		var bodyWidth = document.body.clientWidth;
		var xC = document.body.clientWidth - e.xy[0] - this.width;
		var yC = document.body.clientHeight - e.xy[1] - this.height; 
		var x=0;
		var y=0;
		if (xC > 0)
			x = e.xy[0];
		else
			x = document.body.clientWidth - this.width - 4;

		if (yC > 0)
			y = e.xy[1];
		else
			y= document.body.clientHeight - this.height - 4;
//		this.dateConfig['position']={left:e.xy[0],top:e.xy[1]};
		WdatePicker(this.dateConfig);
	},
	initDate97js:function(){
		var obj=this;
		if(!document.getElementById("$date97js")){
			 var  script  =  document.createElement("script");   
			  script.setAttribute("type",   "text/javascript");   
			  script.setAttribute("src",   MCLONIS+"/js/date97/WdatePicker.js");
			  script.setAttribute("id","$date97js");
			  try   
			  {   
				  document.getElementsByTagName("head")[0].appendChild(script);
				  script.onload = script.onreadystatechange = function() {
				 	  if (script.readyState && script.readyState != 'loaded' && script.readyState != 'complete') 
			            return; 
			         script.onreadystatechange = script.onload = null; 
 			         WdatePicker(1);
				 }
			  }catch(e){}
		}
	},
	initDateConfig:function()
	{
		if(!this.dateConfig)
			this.dateConfig=new Array();
		if(!this.dateConfig['el'])
			this.dateConfig['el']=this.id;
		if(this.time)
			this.addDateConfig("dateFmt",'yyyy-MM-dd HH:mm:ss');
		else
			if(!this.dateConfig["dateFmt"])
				this.dateConfig["dateFmt"]='yyyy-MM-dd';
		if(!this.dateConfig["skin"])
			this.dateConfig["skin"]='ext';
	},
	addDateConfig:function(name,value)
	{
		this.removeDateConfig(name);
		this.dateConfig[name]=value;
	},
	removeDateConfig:function(name){
		for (var i = 0; i < this.dateConfig.length; i++) {
			var temp = this.dateConfig[i];
			if (temp && temp.split(':')[0] == name) {
				this.dateConfig.pop(i);
				return;
			}
		}
	},
	setDateConfig:function(config)
	{
		this.dateConfig=config;
		this.initDateConfig();
	}
});

?


?


?

1 楼 xue811 2010-08-25  
想问一下,这个控件支持ie7吗?
2 楼 xue811 2010-08-25  
冒似我放在项目里,firefox虽然会报错,但是可以用,ie7则不能用,还报$lang未定义!!!请问楼主有解决方法吗?
3 楼 fujingrun 2011-07-13  
挺不错
4 楼 qscchao 2011-08-05  
楼主能给个例子吗,具体怎么使用,我在EXT文件中创建了这个类的对象,但是只是显示日期,不能显示时间。
火狐中显示错误 D is null。
5 楼 kangsoft 2011-08-16  
qscchao 写道
楼主能给个例子吗,具体怎么使用,我在EXT文件中创建了这个类的对象,但是只是显示日期,不能显示时间。
火狐中显示错误 D is null。

有新版本了,需要的话留下邮箱号
6 楼 qscchao 2011-08-16  
kangsoft 写道
qscchao 写道
楼主能给个例子吗,具体怎么使用,我在EXT文件中创建了这个类的对象,但是只是显示日期,不能显示时间。
火狐中显示错误 D is null。

有新版本了,需要的话留下邮箱号

太感谢你了,请发到我的邮箱吧 qinshengchao@126.com
谢谢
7 楼 qscchao 2011-08-16  
谢谢,楼主给的例子,我下载新的版本后通过这样
var dateTime = new Ext.form.DateTimeField({
id:"d11"
});
创建对象,但是每当操作这个控件的时候火狐浏览器直接就崩溃了,IE下没反应,请问楼主这样创建对象正确吗?
8 楼 YuYongLi 2011-08-24  
给的例子不是的,是跳转到一个网站的,做广告的
9 楼 kangsoft 2011-08-24  
YuYongLi 写道
给的例子不是的,是跳转到一个网站的,做广告的

估计你的电脑中毒了。。。
10 楼 zxyqq070 2011-08-27  
zxyqq070@163.com 谢谢分享
11 楼 recoba2k1 2011-09-05  
楼主能发我一个吗?邮箱:recoba2k1@163.com,感谢。
12 楼 jhllf2006 2011-09-06  
楼主给个例子吧谢谢了!jhllf2006@126.com
13 楼 心杀心 2011-10-16  
楼主发我一个,谢谢!javajax@126.com
14 楼 Sartner 2011-10-31  
求新版
ass1982@sina.com
15 楼 hance1000000 2012-02-17  
楼主,求使用例子sharefun2068@qq.com
16 楼 wmj007 2012-02-22  
可以给我发一个吗,谢谢,我在IE8下没反应!wmj111@gmail.com
17 楼 squalllove2012 2012-03-29  
楼主,非常感谢谢,麻烦你给我发一个能带上示例的,我的邮箱是squalllove@qq.com。
18 楼 tangyx 2012-04-06  
同求例子,EXT新手     支持Ext版本有限制吗  邮箱995770058@qq.com
  相关解决方案