集成bootstrap-datetimepicker插件到ExtJs中

系统有一个需求:查询某个时间段内的后台数据,这就需要选择起始日期时间跟结束日期时间。但在ExtJs中只有DatePicker和TimePicker,不能满足我们的需求。这也就是本文的由来。我找到了一个bootstrap的datetimepicker插件,做法是将这个plugin集成到我们的ExtJs系统中来实现目的,分享在这里。

1 插件详情:
插件地址:[url]http://tarruda.github.io/bootstrap-datetimepicker/[/url]
这个插件既能选择日期也能选择时间,且使用起来也非常方便。
默认参数:
   $.fn.datetimepicker.defaults = {
maskInput: false,
pickDate: true,
pickTime: true,
pick12HourFormat: false,
pickSeconds: true,
startDate: -Infinity,
endDate: Infinity,
collapse: true
};

2 使用插件
先下载下来:[url]http://tarruda.github.io/bootstrap-datetimepicker/assets/dist/bootstrap-datetimepicker-0.0.11.zip[/url]解压。
datetimepicker下里面有四个文件:
bootstrap-combined.min.css
bootstrap-datetimepicker.js
bootstrap-datetimepicker.min.css
bootstrap.min.js
(1)将文件夹拷贝到project里面。
(2)初始化页面中加入相应的css和js
<link href="js/datetimepicker/bootstrap-combined.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" media="screen" href="js/datetimepicker/bootstrap-datetimepicker.min.css">
<!-- javascript used by bootstrap-datetimepicker -->
<script type="text/javascript" src="js/datetimepicker/bootstrap.min.js"></script>
<script type="text/javascript" src="js/datetimepicker/bootstrap-datetimepicker.js"></script>

(2)UI里面插入要放置插件的div标识:
items: [
{
xtype: 'label',
html: '<div id="fromDatetime" class="input-append date"><input type="text" class="ux-datetime-field" readonly></input><span class="add-on"><i data-time-icon="icon-time" data-date-icon="icon-calendar"></i></span></div> '
},//开始日期时间
{
xtype: 'label',
html: '<div id="toDatetime" class="input-append date"><input type="text" class="ux-datetime-field" readonly></input><span class="add-on"><i data-time-icon="icon-time" data-date-icon="icon-calendar"></i></span></div>'
},//结束日期时间
{
xtype: 'tbseparator',
style: {
left: '157px !important',
top: '3px !important'
}
},//工具栏垂直分割符
{
xtype: 'button',
frame: false,
itemId: 'searchBtn',
margin: 1,
padding: '0px 0px 1px',
style: {
top: '1px !important',
left: '160px !important'
},
iconCls: 'icon-search',
tooltip: '<div style="white-space:nowrap">Search for the failures within the dates</div>'
}//查询按钮
]

(3)控制器中对插件要进行初始化
onTriageToolbarAfterRender: function(component, eOpts) {
var adjustDate = new Date(new Date().setDate(new Date().getDate()-3));
var formatDate = Ext.Date.format(adjustDate, 'Y/m/d');
$("#fromDatetime > input").attr('value',formatDate);
$("#toDatetime > input").attr('value',Ext.Date.format(new Date() ,'Y/m/d 23:59:59'));
$('#fromDatetime').datetimepicker({//初始化起始日期
format: 'yyyy/MM/dd',
language: 'en',
//endDate: adjustDate,
pickTime: true
});

$('#toDatetime').datetimepicker({//初始化结束日期
format: 'yyyy/MM/dd hh:mm:ss',
language: 'en',
pickTime: true
//startDate: adjustDate
});
var pick = $('#fromDatetime').data('datetimepicker');
pick.format="MM/dd";
pick.show();
pick.hide();
pick = $('#toDatetime').data('datetimepicker');
pick.format="MM/dd";
pick.show();
pick.hide();
return false;
}

(4)查询取值
onSearchBtnClick: function(button, e, eOpts) {
var store = button.up('panel').store;
if(store){
fromPicker = $('#fromDatetime').data('datetimepicker');
toPicker = $('#toDatetime').data('datetimepicker');
store.proxy.extraParams = {
....
start: Ext.Date.format(fromPicker.getDate(), 'Y/m/d')+" "+fromPicker.getDate().getUTCHours()+":"+fromPicker.getDate().getUTCMinutes()+":"+fromPicker.getDate().getUTCSeconds(),//取值
end: Ext.Date.format(toPicker.getDate(), 'Y/m/d')+" "+toPicker.getDate().getUTCHours()+":"+toPicker.getDate().getUTCMinutes()+":"+toPicker.getDate().getUTCSeconds()//取值
};
store.load();
}
return false;
},

3 效果如图

[img]http://dl2.iteye.com/upload/attachment/0097/9970/fc5a5c36-6694-3e74-ab3e-2c3c180a914b.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值