最近在工作中需要再项目管理中选择客户。因为失败了好几次,特记录下来,以后自己可以看下。
//选择客户信息---------------start---------------------->
function initChooseWindow(){
//创建数据源
var stores=new Ext.data.JsonStore({
url:app_path+'/rscustomer_loadCustomer.do'
,autoLoad:true,
root:'loadRoot',
totalProperty : 'totalCount',
fields:['customerName','id']
})
var sm = new Ext.grid.RowSelectionModel();
//创建grid
var grids=new Ext.grid.GridPanel({
id : 'gridPanels',
title : '',
trackMouseOver : false,
autoExpandColumn :'customerName',
store : stores,
height:170,
sm:sm,
columns:[
new Ext.grid.RowNumberer({
width : 30
}),
{
id : 'customerName',
header : '客户姓名',
width : 120,
dataIndex : 'customerName',
sortable : true
},{
id : 'id',
header : '客户编号',
width : 120,
// hidden:'true',
dataIndex : 'id',
sortable : true
}]
,
bbar : new Ext.PagingToolbar({
store : stores,
displayInfo : true
})
})
//创建选择客户信息window
var wins = new Ext.Window({
title : '选择客户(双击人员列表进行选择)',
autoScroll : 'height',
width :473,
layout:'fit',
id : "edit_forms",
height : 480,
resizable : false,
modal:true,
draggable : true,
items : grids,
plain : true,
fbar : [{
iconCls:'confirm',
text : '确定',
handler:function(){
$("edit_forms").chooseField.handlerChoose();
}
}, {
iconCls:'cancel',
text : '取消',
handler:function(){
wins.hide();
}
}]
});
}
也就是要创建一个windwo,里面包含一个grid.这个grid中的字段要和URL提供的字段相对应。
然后在项目管理的form中。选择客户的item如下:
xtype : 'choosefield',
fieldLabel : '客户姓名',
name : "customerName",
editable:false,
id : "customerName",
emptyText:'请选择客户',
width : 200,
allowBlank : false,
windowid:'edit_forms', //上面客户的window
gridid:"gridPanels", //上面代码中的客户grid
formid:"xmform",
columns:{"customerName":"customerName","id":"customerNo"}, //注意,URL的字段 在前面
blankText : '客户姓名不能为空',
maxLength : 10