同志们,帮忙了,关于editor问题

在grid的column定义里,不是可以有editor定义吗。比如{
id:'fname',
header: "First Name",
width: 40,
sortable: true,
dataIndex: 'fname',
editor: new Ext.form.DateField({
vtype: 'alpha'
,allowBlank: false
})
}

我现在做的就是一个类似于DateField这样的,可以能来编辑表格的一个控件。双击表格后,进入编辑状 态,点击 表格里那个类似于按钮的东西,已经可以蹦出一个窗口了,在窗口里嵌入一个Grid,可以认为这个是从数据库 里来的,然后选中某个数据。我希望这个数据显示在被编辑的表格里,但是目前还是显示不了啊。
实在是很晕了。大家赶紧帮我看看,应该内层的机制我还是不清楚啊。


下面是我定义的这个东西,以及页面。
Ext.ns('gxlu.nova.web.framework.ui.list');
gxlu.nova.web.framework.ui.list.WRef = Ext.extend(Ext.form.TriggerField,{



initComponent : function(){
gxlu.nova.web.framework.ui.list.WRef.superclass.in itComponent.call(this);
this.columns = [
{id:'selecttable',header: "selecttable", width: 160, sortable: true, dataIndex: 'selecttable'},
{header: "code", width: 75, sortable: true, dataIndex: 'code'},
{header: "name", width: 75, sortable: true, dataIndex: 'name'},
{header: "type", width: 75, sortable: true, dataIndex: 'type'},
{header: "savetable", width: 85, sortable: true, dataIndex: 'savetable'}
];

},
store : null,
grid : null,
columns : null,
win:null,
returndata:null,
sql_fieldnames:" ",
sql_realdata:" ",
editable: true,
forceSelection:false,






buildWindow : function(window,panel,config_win){
var newpanel = panel;
var newwin = window;
if(!newwin){
newwin = new Ext.Window({
el:config_win.show_win,
layout:'fit',
width:500,
modal:true,
height:300,
closeAction:'hide',
plain: true,

items: newpanel,
buttons: [{
text:'Submit',
disabled:true
},{
text: 'Close',
handler: function(){
newwin.hide();
}
}]
});
}
newwin.show(this);
},



getFieldName : function(sql_fieldnames){
var fieldnamesarray = [//the data should be imported from the database,and parsed
['selecttable','selecttable','String'],
['code','code','String'],
['name','name','String'],
['type','type','String'],
['savetable','savetable','String']
];
this.buildStore(fieldnamesarray);

},

getRealData : function(sql_realdata){
var realdata = [ //the data should be imported from the database
['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],
['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],
['American Express Company',52.55,0.01,0.02,'9/1 12:00am'],
['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],
['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],
['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'],
['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'],
['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'],
['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am'],
['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'],
['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'],
['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'],
['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'],
['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'],
['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'],
['International Business Machines',81.41,0.44,0.54,'9/1 12:00am'],
['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'],
['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am'],
['McDonald's Corporation',36.76,0.86,2.40,'9/1 12:00am'],
['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'],
['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'],
['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am'],
['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'],
['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am'],
['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'],
['United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am'],
['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'],
['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am']
];
this.fillStore(realdata);

},

buildStore : function(fieldnamesarray){
var fields = ;
for(var i=0;i fields[i] = {name:fieldnamesarray[i][1]};
};

if(!this.store){
this.store = new Ext.data.SimpleStore({
fields: fields
});
}

},


fillStore : function(realdata){
this.store.loadData(realdata);

},


setRawValue : function(v){
return this.el.dom.value = (v === null v === undefined ? '' : v);

},


setValue : function(v){
var text = v;
alert('this.value'+this.value);
Ext.form.ComboBox.superclass.setValue.call(this, text);
this.value = v;
},
getValue : function(){

return Ext.form.ComboBox.superclass.getValue.call(this);
},

buildPanel : function(){
if(!this.grid){
this.grid = new gxlu.nova.web.framework.ui.grid.GridPanel({
store: this.store,
columns: this.columns,
stripeRows: true,
autoExpandColumn: 'selecttable',//×¢ÒâÒª¸Ä±ä
height:350,
width:600,
title:'Ref Grid of gxlu' //this.reftitle
});

var ob = this;

this.grid.on('rowclick', function(grid,rowIdx,e){
var record = grid.getStore().getAt(rowIdx); // Get the Record

var data = record.data.selecttable+','+record.data.code+','+r ecord.data.name+','+record.data.type+','+record.da ta.savetable;//get the data of record



ob.setValue(data);


});
}
},

onTriggerClick : function(){

alert('it has been tirggered!');

this.getFieldName(this.sql_fieldnames); //the input is sql
this.getRealData(this.sql_realdata); //the input is sql
this.buildPanel();
var config_win = {};
for( var ob in this){
config_win[ob] = this[ob];
}
this.buildWindow(this.win,this.grid,config_win);

}



});
Ext.reg('Lref', gxlu.nova.web.framework.ui.list.WRef);


页面
<%@ page contentType="text/html; charset=UTF-8"%>
<%
String path = request.getContextPath();
%>



the editor



































#If you have any other info about this subject , Please add it free.#
Your name:
E-mail:
Telphone:

Your comments:


If you have any other info about 同志们,帮忙了,关于editor问题 , Please add it free.