国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

ExtJS4實現(xiàn)帶week(星期)的日期選擇控件(實戰(zhàn)一)_extjs

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 21:13:03
文檔

ExtJS4實現(xiàn)帶week(星期)的日期選擇控件(實戰(zhàn)一)_extjs

ExtJS4實現(xiàn)帶week(星期)的日期選擇控件(實戰(zhàn)一)_extjs:前言 Ext JS 3 和 Ext JS 4中都有提供日期選擇的組件(當然早期版本也有)。 但是有一些日期選擇的需求是要看到星期,就是日期中的哪一天是這一年的第幾周。 遺憾的是Ext js 并沒有提供這樣的配置。 (針對Ext js 4來說,理想的相法是在Ext.picker.
推薦度:
導讀ExtJS4實現(xiàn)帶week(星期)的日期選擇控件(實戰(zhàn)一)_extjs:前言 Ext JS 3 和 Ext JS 4中都有提供日期選擇的組件(當然早期版本也有)。 但是有一些日期選擇的需求是要看到星期,就是日期中的哪一天是這一年的第幾周。 遺憾的是Ext js 并沒有提供這樣的配置。 (針對Ext js 4來說,理想的相法是在Ext.picker.

前言

Ext JS 3 和 Ext JS 4中都有提供日期選擇的組件(當然早期版本也有)。

但是有一些日期選擇的需求是要看到星期,就是日期中的哪一天是這一年的第幾周。

遺憾的是Ext js 并沒有提供這樣的配置。

(針對Ext js 4來說,理想的相法是在Ext.picker.Date有一個 類似showWeek這樣的配置項)

現(xiàn)有的解法

到網(wǎng)絡上去看看基于Ext js 的解法:有找到兩個

http://enikao.net/extjs/weeknumber/weeknumber.html

http://www.lubber.de/extjs/datepickerplus/

第一種解法在IE上work, 在其他瀏覽器上顯示不出來, 直接忽視。

第二種解法支持 Ext js 2 和 Ext js 3 版本,但是不支持Ext js 4。憑著個人在Ext js 升級上的一些經(jīng)驗,一開始覺得把這個擴展升級到Ext js 4應該沒有什么問題。鼓搗了半天,放棄了。 Ext js 3 升級到Ext js 4后, 日期頁面的顯示元素也做了修改, 舊版本用 tr td 居多,新版本中多了一些 div 和 a 元素。而且class 的名字也換掉了。這樣看起來,升級阻力較大。只能自己來實現(xiàn)這個擴展了。

Ext JS 4 日期控件擴展

先貼上代碼:
代碼如下:
/*********************************
* @author: oscar999
* @Description: New Widgets Extend from Ext
* @verion: V1.0
**********************************/

/**
* Date Picker with Week
*/
Ext.define('Ext.ux.DatePickerWithWeek',{
extend: "Ext.picker.Date",
alias : "widget.datepickerwithweek",
width: 197,
numWeeks: 6,
renderTpl:[
'',
'',

'',
'{%this.renderMonthBtn(values, out)%}',

'',
'',
'

',
'',
'',
'',
'
',
'',

'

',
'',
'',
'{#:this.isEndOfWeek}',
'{#:this.isBeginOfWeek}',
'
',
'',
'',
'
',
'Wk',
'
',
'{.:this.firstInitial}',
'
',
'',
'
',
'',
'{%this.renderTodayBtn(values, out)%}',
'
',
'',
{
firstInitial: function(value) {
//alert(value);
return Ext.picker.Date.prototype.getDayInitial(value);
},
isBeginOfWeek: function(value){
//value--;
//value--;
var end = (value === 1 || (value-1)%7 === 0);
return end ? '' : '';

},
isEndOfWeek: function(value) {
value--;
var end = value % 7 === 0 && value !== 0;
return end ? '' : '';
},
renderTodayBtn: function(values, out) {
Ext.DomHelper.generateMarkup(values.$comp.todayBtn.getRenderTree(), out);
},
renderMonthBtn: function(values, out) {
Ext.DomHelper.generateMarkup(values.$comp.monthBtn.getRenderTree(), out);
}
}
],
fullUpdate: function(date){
this.callParent([date]);

var me = this;
var weekNodes = me.weekNodes;
var curWeekStart = Ext.Date.clearTime(new Date(date.getFullYear(), date.getMonth(), 1));
var begMonWeek = Ext.Date.getWeekOfYear(curWeekStart);
var firstDayOfMonth = Ext.Date.getFirstDayOfMonth(curWeekStart);
if(firstDayOfMonth===0)
{
begMonWeek +=1;
}
for(j=0;j{
weekNodes[j].innerHTML = begMonWeek.toString();
begMonWeek++;
}
},
onRender : function(container, position){
var me = this;
me.callParent(arguments);
me.cells = me.eventEl.select('tbody td[role="gridcell"]');
me.textNodes = me.eventEl.query('tbody td[role="gridcell"] a');

//begin extend
me.weekcells= me.eventEl.select('tbody td[role="weekcell"]');
me.weekNodes= me.eventEl.query('tbody td[role="weekcell"] a');
//end extend
me.mon(me.eventEl, {
scope: me,
mousewheel: me.handleMouseWheel,
click: {
//fn: me.handleDateClick,
fn: function(){},
delegate: 'a.' + me.baseCls + '-date'
}
});
}
/*,initComponent: function(){
this.callParent();
}*/
});

/*
* Date Form field use Date Picker with Week
*/
Ext.define('Ext.ux.DateFieldWithWeek',{
extend: "Ext.form.field.Date",
alias : "widget.datefieldwithweek",
/*initComponent: function(){
this.callParent();
},*/
createPicker : function(){
var me = this
format = Ext.String.format;
return new Ext.ux.DatePickerWithWeek({
pickerField: me,
ownerCt: me.ownerCt,
renderTo: document.body,
floating: true,
hidden: true,
focusOnShow: true,
minDate: me.minValue,
maxDate: me.maxValue,
disabledDatesRE: me.disabledDatesRE,
disabledDatesText: me.disabledDatesText,
disabledDays: me.disabledDays,
disabledDaysText: me.disabledDaysText,
format: me.format,
showToday: me.showToday,
startDay: me.startDay,
minText: format(me.minText, me.formatDate(me.minValue)),
maxText: format(me.maxText, me.formatDate(me.maxValue)),
listeners: {
scope: me,
select: me.onSelect
},
keyNavConfig: {
esc: function() {
me.collapse();
}
}
});
}
});

原理很簡單:

1. 改寫 renderTpl, 增加星期顯示的列

2. 改寫fullUpdate, 設置星期的值。 Ext 有提供getWeekOfYear這個方法可以獲取星期

3. onRender。 這里需要特別注意的就是click 中的fn: me.handleDateClick 要給一個空函數(shù),否則選日期的時候會執(zhí)行兩次。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

ExtJS4實現(xiàn)帶week(星期)的日期選擇控件(實戰(zhàn)一)_extjs

ExtJS4實現(xiàn)帶week(星期)的日期選擇控件(實戰(zhàn)一)_extjs:前言 Ext JS 3 和 Ext JS 4中都有提供日期選擇的組件(當然早期版本也有)。 但是有一些日期選擇的需求是要看到星期,就是日期中的哪一天是這一年的第幾周。 遺憾的是Ext js 并沒有提供這樣的配置。 (針對Ext js 4來說,理想的相法是在Ext.picker.
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产精品一级片 | 亚洲色图欧美自拍 | 国产产一区二区三区久久毛片国语 | 国产亚洲一区二区三区不卡 | 欧美成人在线视频 | 久久免费视频观看 | 国产播放器一区 | 日韩欧美激情视频 | 国内精品伊人久久久久妇 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产 日韩 欧美 亚洲 | 免费看欧美日韩一区二区三区 | 日韩在线观看不卡 | 国产精品亚洲一区二区在线观看 | 久久频道毛片免费不卡片 | 精品国产一区二区在线观看 | 国产精品…在线观看 | 精品免费国产一区二区女 | 亚洲欧洲中文字幕 | 国产国语高清在线视频二区 | 成人黄色在线观看 | 亚洲欧美日韩天堂 | 亚洲欧美日韩中另类在线 | 国产一区在线免费观看 | 香港经典a毛片免费观看…伊人色综合久久 | 日韩欧美在线综合网 | 日韩综合第一页 | 国产在视频 | 午夜一级| 在线观看国产视频 | 欧美日韩国产高清 | 久久99久久99精品 | 欧美另类图片亚洲偷 | 久久www免费人成_看片美女图 | 欧美日韩在线观看免费 | 欧美精品三区 | 91专区| 日韩视频欧美视频 | 韩国演艺圈一区二区三区 | 久久99精品国产麻豆不卡 | 日本a级免费 |