我为我的最后一年项目建立了一个系统。在一个部分,我有一个联系人列表与复选框,以选择联系人号码,我计划将这些选定的电话号码添加到收件人列表,而无需将所选的号码键入列表。
我的问题是我不知道如何将它们转移到列表中;我正在使用EXTJ,我已经建立了一个按钮来添加到“添加到收件人”列表中。
对不起任何语法错误。 :)
我的代码复选框
var check = new Ext.grid.CheckboxSelectionModel();
var grid = new Ext.grid.GridPanel({
store: myStore,
autoScroll:true,
sm:check,
listeners:{
'rowdblclick': onRowDoubleClick,
'rowclick': onRowClick
},
columns: [
{id:'sub',header: "Course", width: 30, dataIndex: 'Course'},
{header: "Matrix No", width: 30, dataIndex: 'MatrixNo'},
check,
{header: "Phone No", width : 30, dataIndex: 'PhoneNo'},
],
.
.
.
收件人部分的代码
Ext.onReady(function(){
Ext.QuickTips.init();
.
.
.
.
Ext.form.Field.prototype.msgTarget = 'side';
var bd = Ext.getBody();
var tabs = new Ext.FormPanel({
labelWidth: 75,
border:false,
method: 'post',
width: 600,
url: './php/send.php',
items: {
xtype:'tabpanel',
activeTab: 0,
defaults:{autoHeight:true, bodyStyle:'padding:15px'},
items:[{
layout:'form',
defaults: {width: 475},
defaultType: 'textfield',
items: [{
.
.
.
},{
fieldLabel: 'Recipient',
name: 'recipient',
layout:'column',
height:20,
allowBlank:false,
id:'recipient',
}]
}]
.
.
.
buttons: [{
text: 'Add to Recipient',
handler: function (){
.
.
.
);
}
})
}
}]
答案 0 :(得分:0)
您可以通过check.getSelected()
获取一系列选定记录,其中check
是您的CheckBoxSelectionModel。
如果我理解正确,您希望生成一组简单的收件人电子邮件,以便向他们发送邮件。如果是这种情况(例如,您的示例中的'recipient'
是纯文本字段),那么它将类似于:
var recs = check.getSelected(), // gives you an array of checked records in grid
recipients = [];
for(var i = 0, len = check.length; i < len; i++) {
// build recipient string array
recipients.push(recs[i].get('email')); // get all necessary fields from the record
}
recipientField.setValue(recipients.join(','));
// the field will contain a string like "amy@mail.org,john@mail.org,lucy@mail.org..."