PDA

View Full Version : ??????????????



kuro
27 Dec 2009, 8:08 PM
(1) ????
Ext.form.DateField?????????????????????????????????

??????????????
??????????????????????Ext.DatePicker?????????????
???DatePicker????????????????????????21??
?DatePicker??????????????
????????????????????????????????????1?????63????
??????????DatePicker????????????

(2) ????
Ext.Date.format??????????????????????????????????
??????????????

yuki
2 Mar 2010, 10:53 PM
???????????????????????????
?????????????????????????????????


<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Ext.WarekiField????</title>
<link rel="stylesheet" type="text/css" href="http://extjs.cachefly.net/ext-3.1.1/resources/css/ext-all.css" />
<script type="text/javascript" src="http://extjs.cachefly.net/ext-3.1.1/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="http://extjs.cachefly.net/ext-3.1.1/ext-all.js"> </script>
<script type="text/javascript" src="http://extjs.cachefly.net/ext-3.1.1/src/locale/ext-lang-ja.js"> </script>

<script type="text/javascript"><!--

// ext-lang-ja???
Date.getShortMonthName = function(month) {
return Date.monthNames[month];
};

// ???????????prefix_type = true???????????1?????
Date.toJapaneseYearString = function(year, prefix_type){
if(!year) return;
year = parseInt(year);

var wareki = [
{start: 1868, short_name: 'M', long_name: '??' },
{start: 1912, short_name: 'T', long_name: '??' },
{start: 1926, short_name: 'S', long_name: '??' },
{start: 1989, short_name: 'H', long_name: '??' }
];

var prefix = prefix_type === true ? 'short_name' : 'long_name';

if(year < wareki[0].start) return year;
if(year < wareki[1].start) return wareki[0][prefix] + (year - wareki[0].start + 1);
if(year < wareki[2].start) return wareki[1][prefix] + (year - wareki[1].start + 1);
if(year < wareki[3].start) return wareki[2][prefix] + (year - wareki[2].start + 1);
return wareki[3][prefix] + (year - wareki[3].start + 1);
};

/*
* Ext.form.DateField??Ext.DatePicker???Ext.menu.DateMenu???????????
* ??3?????????????????
*/

// Ext.DatePicker?????Ext.WarekiPicker
Ext.WarekiPicker = Ext.extend(Ext.DatePicker,{

// ????????????
updateMPYear : function(y){
this.mpyear = y;
var ys = this.mpYears.elements;
for(var i = 1; i <= 10; i++){
var td = ys[i-1], y2;
if((i%2) === 0){
y2 = y + Math.round(i * 0.5);
td.firstChild.innerHTML = Date.toJapaneseYearString(y2, true); // ????
td.xyear = y2;
}else{
y2 = y - (5-Math.round(i * 0.5));
td.firstChild.innerHTML = Date.toJapaneseYearString(y2,true); // ????
td.xyear = y2;
}
this.mpYears.item(i-1)[y2 == this.mpSelYear ? 'addClass' : 'removeClass']('x-date-mp-sel');
}
},

// ??????????????????????????????????????
update : function(date, forceRefresh){
Ext.WarekiPicker.superclass.update.apply(this,arguments);

if(this.rendered){
this.mbtn.setText(Date.toJapaneseYearString(date.getFullYear()) + '?' + this.monthNames[date.getMonth()]);
}
}

});

// Ext.menu.DateMenu?????Ext.WarekiMenu
Ext.WarekiMenu = Ext.extend(Ext.menu.DateMenu, {
initComponent: function(){
Ext.WarekiMenu.superclass.initComponent.call(this);

/*
* Ext.menu.DateMenu.initComponent?????DatePicker??????????
* ???????????superclass???????????????????
* WarekiPicker?????????
*/


// DatePicker????????????
this.un('show', this.picker.focus, this.picker);
this.picker.purgeListeners();
this.remove(this.picker);

// WarekiPicker?????????????
this.picker = new Ext.WarekiPicker({
internalRender: this.strict || !Ext.isIE,
ctCls: 'x-menu-date-item',
id: this.pickerId
}, this.initialConfig);
this.picker.purgeListeners();

this.relayEvents(this.picker, ['select']);
this.on('show', this.picker.focus, this.picker);

this.add(this.picker);
}
});

// Ext.form.DateField?????Ext.WarekiField?WarekiMenu???
Ext.WarekiField = Ext.extend(Ext.form.DateField,{
menu: new Ext.WarekiMenu({
hideOnClick: false,
focusOnSelect: false
})
});

Ext.reg('warekifield', Ext.WarekiField);

Ext.BLANK_IMAGE_URL = "http://extjs.cachefly.net/ext-3.1.1/resources/images/default/s.gif";
Ext.onReady(function(){
new Ext.WarekiField({
renderTo: Ext.getBody(),
width: 200
});
});
// --></script>
</head>
<body>
<h1>Ext.WarekiField????</h1>
</body>
</html>

kuro
3 Mar 2010, 12:09 AM
yuki????????????
?????????????

min_mi
18 Sep 2013, 11:09 PM
Mr Yuki,

Please provide me example of the same date picker compatible for extjs version 4.1.x

thanks in advance...