私のモデルコードは
Ext.define('gantt.model.Project', {
extend: 'Ext.data.Model',
fields : [
{ name: 'id', type: 'int', useNull: true, mapping: 'projectid'},
{ name: 'title', type: 'string', mapping: 'projecttitle'},
{ name: 'name', type: 'string', mapping: 'projectname'},
{ name: 'description', type: 'string', mapping: 'projectdesc'},
{ name: 'startdate', type: 'date', mapping: 'startdate', dateFormat :'time'},
{ name: 'enddate', type: 'date', mapping: 'enddate', dateFormat :'time'},
]
});
私の見解は
Ext.define('gantt.view.projectmgt.projectAdd', {
extend: 'Ext.form.Panel',
alias: 'widget.projectadd',
title: 'New Project Detail Input Window',
width: '50%',
xtype:'fieldset',
title: 'Project Details',
collapsible: true,
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items :[{
fieldLabel: 'Title',
name: 'title',
xtype: 'textfield'
},{
fieldLabel: 'Name',
name: 'name',
xtype: 'textfield'
},{
fieldLabel: 'StartDate',
name: 'startdate',
xtype: 'datefield',
format: 'Y/m/d'
},{
fieldLabel: 'EndDate',
name: 'enddate',
xtype: 'datefield',
format: 'Y/m/d'
}, {
xtype: 'htmleditor',
name: 'description',
fieldLabel: 'Description',
height: 200,
anchor: '100%'
}],
buttons: [{
text: 'Save',
action: 'show-gantt-view'
},{
text: 'Cancel',
action: 'cancel'
}]
});
フォームパネルをクリックすると保存ボタンが表示されますコントローラーは次の方法を実行します
createProjectGanttpanel: function(btn) {
var win = this.getProjectAdd().getForm().getValues();
console.log('PANEL VALUES ARE ::'+win["startdate"]);
record = Ext.create('gantt.model.Project');
record.set(win);
this.getProjectsStore().add(record);
this.getProjectsStore().sync();
}
このメソッドは、値をモデルに割り当ててから、保存してデータベースに保存します。しかし、コンソールログに「2012/01/31」として印刷された形式の日付を選択すると問題が発生しますが、firebug POSTタブを見ると、開始日が「-19800000」として渡され、終了日が「-」として渡されます。 19800000 '
サーバー側でJAVAコンソールを見ると、「startdate」:「1970-01-01T05:30:02」、「enddate」:「1970-01-01T05:30:02」が表示されますが、これは正しくありません。このため、グリッドパネルに正しい日付が表示されません。
私がここで間違っていることは私のコードです。すぐに解決できるように、問題を見つけるのを手伝ってください。
サーバーサイドテクノロジーとしてextjs4.0.2amvcとJAVAを使用しています。