您的位置:知蚁博客 » 程序设计 » ExtJS选择日期时间的一个解决方法

ExtJS选择日期时间的一个解决方法

作者: 发布时间:2011-04-30 分类:程序设计 标签: 8,475人浏览

  ExtJS是一个ajax框架,它是用javascript写的,与后台技术无关,主要用于创建前端用户界面。
  ExtJS的功能非常强大,但是在form表单中它的日期和时间控件是单独的,没有可以直接选择日期和时间的控件,那么怎么办呢?虽然网上有改进版的日期时间控件下载,但星石觉得还是原生态比较好,所以想了一个不需要修改任何代码的方法。
  其实呢,挺简单,就是将日期和时间控件放在同一行,保留一个fieldLabel,然后分别选择数值,保存到数据库中,再进行其他操作。下面是星石的开发步骤:
首先,设计日期时间在数据库中的存储。在MySQL数据库中,有date、time、datetime字段类型,所以,可以设计成2个字段,1个是date、1个是time;也可以设计成1个字段,类型是datetime,当然也可以设置为int,保存时间戳。星石这里选择的是1个datetime字段,这便于日期时间的条件判断。
  然后,在form表单中,将datefield和timefield放在同一行,代码如下:

fp = new Ext.form.FormPanel({
width: 400,
height: 300,
layout: ‘form’,
buttonAlign:’center’,
labelAlign:’right’,
labelWidth:100,
frame:true,
bodyStyle:’padding:5px 0 0 0;’,
items: [{
xtype: 'panel',
layout: 'form',
autoWidth: true,
autoHeight: true,
items: [{
layout: 'column',
items: [{
columnWidth:.5,
layout:'form',
items:[{
xtype: 'datefield',
fieldLabel: '开始时间',
name: 'starttime_date',
id: 'starttime_date',
altFormats: 'Y-m-d',
format: 'Y-m-d',
width: 100
}]
},{
columnWidth:.5,
layout:’form’,
items: [{
xtype: 'timefield',
hideLabel: true,
name: 'starttime_time',
id: 'starttime_time',
altFormats: 'H:i:s',
format: 'H:i:s',
width: 100
}]
}]
}]
}],
buttons: [{
text: '提交',
type: 'submit',
handler: function(){...}
},{
text: '取消',
type: 'button',
handler: function(){...}
}]
});

  数据post到后台后,将date和time的值连接成datetime值,保存到数据库中。
  最后,编辑记录的时候,在form表单loadRecord之前,取datetime的前10位赋给date,后8位赋给time,类似于下面的代码:

var records = selModel.getSelections();
Ext.getCmp(‘starttime_date’).setValue(Ext.util.Format.substr(records[0].data.starttime,0,10));
Ext.getCmp(‘starttime_time’).setValue(Ext.util.Format.substr(records[0].data.starttime,11,8));
fp.getForm().loadRecord(records[0]);

  就是这样了,O(∩_∩)O~,只要在表现形式、保存和编辑数据之前做一些处理,就能把date和time当成datetime似的使用啦!
原创文章请注明转载于知蚁博客,本文地址:http://www.letuknowit.com/archives/66

相关文章

5访客评论 ,博主回复4

  1. Ajax 有难度哦! 呵呵 博主厉害了!

    建权博客05-01 09:19 回复
    • 呵呵,过奖了!

      知蚁05-02 15:49 回复
  2. 最近,我才开始学习extjs,还没正式入门了,慢慢长路啊

    双陈记05-02 19:25 回复
    • 呵呵,以后可以多交流交流

      知蚁05-02 20:12 回复
  3. 比较喜欢extjs的桌面应用效果,只可惜没有机会去使用。

    小木05-04 14:09 回复
    • 那个效果还是蛮酷的,有机会还是要试试,可以先拿别人写好的过来玩玩

      知蚁05-04 18:36 回复
      • 嗯,我一般做的应用都是以实用为目的的,所以一些看起来很帅气的效果倒是从来没法去操作。

        小木05-05 10:34 回复
  4. 最近也想学点extjs方面只是,不知博主是否有相关书籍推荐???

    • 我都是直接去官网找资料的,可以先看上面的例子,地址是:http://dev.sencha.com/deploy/ext-4.0.0/examples/,然后就是查api文档,地址是:http://dev.sencha.com/deploy/ext-4.0.0/docs/,也可以下载下来,在本地看。还有extjs 中文网站

      知蚁05-05 23:23 回复

我来说说

(必须)

(必须,保密)

你确定你已经看过文章了?
取消

无觅相关文章插件,快速提升流量