Ext JS 4 は週による日付選択制御を実装します (実践戦闘 1)_extjs
Ext JS 3 と Ext JS 4 は両方とも、日付選択用のコンポーネントを提供します (もちろん、以前のバージョンにもそれらはあります)。

ただし、一部の日付選択では週を確認する必要があります。つまり、日付内のどの日がその年の何週目であるかを確認する必要があります。
残念ながら、Ext js ではそのような構成は提供されていません。
(Ext js 4 の場合、理想的な方法は Ext.picker.Date に showWeek のような構成項目を含めることです)
既存のソリューション
インターネットにアクセスして、Ext js に基づくソリューションを確認します。
http://enikao.net/extjs/weeknumber/weeknumber.html
と
http の 2 つを見つけました。 ://www.lubber.de/extjs/datepickerplus/
最初の解決策は IE では機能しますが、他のブラウザでは表示できないため、無視してください。
2 番目のソリューションは Ext js 2 および Ext js 3 バージョンをサポートしますが、Ext js 4 はサポートしません。 Ext js のアップグレードにおける私の個人的な経験に基づいて、私は当初、この拡張機能を Ext js 4 にアップグレードしても問題ないと感じました。長い間悩んだ結果、断念しました。 Ext js 3 が Ext js 4 にアップグレードされた後、日付ページの表示要素も変更されました。古いバージョンでは主に tr td が使用されていましたが、新しいバージョンではさらに div 要素と a 要素が追加されました。そしてクラス名も変更になりました。アップグレードに対する抵抗が大きくなっているようです。この拡張機能は自分でのみ実装できます。
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:[
'
'',
'
', ' Wk ', ' | ', ', ' {.:this.firstInitial} ', ' | ',
---|---|
', '', ' | ',
'
' ',
'
'
{
firstInitial: function(value) {
//alert(value);
return Ext.picker.Date.prototype.getDayInitial(value);
},
isBeginOfWeek: function(value){
//value--;
//値--;
var end = (value === 1 || (value-1)%7 === 0);
返却終了? '
},
isEndOfWeek: function(value) {
value--;
var end = value % 7 === 0 && value !== 0;
返却終了? '
},
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.getFull Year(), date.getMonth(), 1));
var begMonWeek = Ext.Date.getWeekOf Year(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(引数);
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();
}*/
});
/*
* 日付フォーム フィールドは週付きの日付ピッカーを使用します
*/
Ext.define('Ext.ux.DateFieldWithWeek',{
extend: "Ext.form .field.Date",
エイリアス : "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 には getWeekOf Year が用意されており、このメソッドは星期
3 を取得できます。ここで特に注意が必要なのは、中央の fn: me.handleDateClick をクリックすることです。これは、1 つの関数であり、日中は 2 回実行されます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...
