FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 10197|回复: 7
打印 上一主题 下一主题

求助 带时间的日期控件

[复制链接]
跳转到指定楼层
楼主
发表于 2012-6-13 09:03:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ~~疯狂~~ 于 2012-6-15 00:17 编辑

建议管理员做发一两个extaspnet简单控件开发的教程,这样大家学会了以后控件就更多了。

自己不懂extaspnet的控件开发,请高手帮忙做个带时间的日期控件。具体的js别人已经实现,需要再处理一下:


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

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

示例如下:


  1. /**
  2. * 日期时间控件,可单独显示日期,或日期时间。格式可自己设置。和myDate97设置一样
  3. * @class Ext.form.DateTimeField
  4. * @extends Ext.form.TriggerField
  5. */
  6. Ext.form.DateTimeField = Ext.extend(Ext.form.TriggerField, {
  7.         /**
  8.          * @param {Array} date97配置列表
  9.          * @type
  10.          */
  11.         dateConfig:null,
  12.         /**
  13.          * @param {Boolean} 是否显示时间,默认为不显示
  14.          */
  15.         time:false,
  16.         triggerClass : 'x-form-date-trigger',
  17.         defaultAutoCreate : {tag : "input",type : "text",size : "10",autocomplete : "off"},
  18.         initComponent : function() {
  19.                 Ext.form.DateField.superclass.initComponent.call(this);
  20.                 this.initDate97js();
  21.                 this.initDateConfig();
  22.         },
  23.         onTriggerClick : function(e) {// 点击查找按钮时
  24.                 if (this.disabled||this.readOnly) {
  25.                         return;
  26.                 }
  27.                 this.onFocus({});
  28.                 var bodyWidth = document.body.clientWidth;
  29.                 var xC = document.body.clientWidth - e.xy[0] - this.width;
  30.                 var yC = document.body.clientHeight - e.xy[1] - this.height;
  31.                 var x=0;
  32.                 var y=0;
  33.                 if (xC > 0)
  34.                         x = e.xy[0];
  35.                 else
  36.                         x = document.body.clientWidth - this.width - 4;

  37.                 if (yC > 0)
  38.                         y = e.xy[1];
  39.                 else
  40.                         y= document.body.clientHeight - this.height - 4;
  41. //                this.dateConfig['position']={left:e.xy[0],top:e.xy[1]};
  42.                 WdatePicker(this.dateConfig);
  43.         },
  44.         initDate97js:function(){
  45.                 var obj=this;
  46.                 if(!document.getElementById("$date97js")){
  47.                          var  script  =  document.createElement("script");   
  48.                           script.setAttribute("type",   "text/javascript");   
  49.                           script.setAttribute("src",   MCLONIS+"/js/date97/WdatePicker.js");
  50.                           script.setAttribute("id","$date97js");
  51.                           try   
  52.                           {   
  53.                                   document.getElementsByTagName("head")[0].appendChild(script);
  54.                                   script.onload = script.onreadystatechange = function() {
  55.                                            if (script.readyState && script.readyState != 'loaded' && script.readyState != 'complete')
  56.                                     return;
  57.                                  script.onreadystatechange = script.onload = null;
  58.                                  WdatePicker(1);
  59.                                  }
  60.                           }catch(e){}
  61.                 }
  62.         },
  63.         initDateConfig:function()
  64.         {
  65.                 if(!this.dateConfig)
  66.                         this.dateConfig=new Array();
  67.                 if(!this.dateConfig['el'])
  68.                         this.dateConfig['el']=this.id;
  69.                 if(this.time)
  70.                         this.addDateConfig("dateFmt",'yyyy-MM-dd HH:mm:ss');
  71.                 else
  72.                         if(!this.dateConfig["dateFmt"])
  73.                                 this.dateConfig["dateFmt"]='yyyy-MM-dd';
  74.                 if(!this.dateConfig["skin"])
  75.                         this.dateConfig["skin"]='ext';
  76.         },
  77.         addDateConfig:function(name,value)
  78.         {
  79.                 this.removeDateConfig(name);
  80.                 this.dateConfig[name]=value;
  81.         },
  82.         removeDateConfig:function(name){
  83.                 for (var i = 0; i < this.dateConfig.length; i++) {
  84.                         var temp = this.dateConfig[i];
  85.                         if (temp && temp.split(':')[0] == name) {
  86.                                 this.dateConfig.pop(i);
  87.                                 return;
  88.                         }
  89.                 }
  90.         },
  91.         setDateConfig:function(config)
  92.         {
  93.                 this.dateConfig=config;
  94.                 this.initDateConfig();
  95.         }
  96. });
复制代码



ExtJS之时间控件


   可能很多朋友都会觉得ExtJS自己的日期控件不是很好用,比如要选择精确时间“2009-09-03 10:28:54”就显得无能为力了,网上有些高手扩展了这些控件,但个人感觉不是很好用,且目前没有发现可以用于EXT 3.0版本的。
    现给大家推荐EXtJS结合my97 的时间控件一起使用。首先下载MY97:http://www.my97.net/dp/index.asp
    接着引入到你使用的页面<script src="My97DatePicker/WdatePicker.js" type="text/javascript"></script>
    最后定义你的表单:items:[ {
                                fieldLabel: '开始时间',
                                listeners: {
                                'focus': function(){WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})}
                                }]
OK,可以使用了。





my97时间控件官网,有免费版的。
http://www.my97.net/dp/index.asp


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
 楼主| 发表于 2012-6-14 14:10:27 | 只看该作者
哪位高手帮忙指点一下?
板凳
 楼主| 发表于 2012-6-15 00:22:06 | 只看该作者
看来只能自己支持了!
地板
发表于 2012-10-11 08:51:08 | 只看该作者
三石先生不看贴啊,这个帖子好啊
5#
发表于 2012-10-11 09:12:36 | 只看该作者
强烈要求支持时间的时间控件
6#
发表于 2012-10-12 03:20:04 | 只看该作者
继续顶
7#
发表于 2013-8-14 11:44:59 | 只看该作者
好的,时间控件
8#
发表于 2013-8-14 15:49:32 | 只看该作者

继续顶
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-28 05:53 , Processed in 0.047496 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表