0

我为我最后一年的项目建立了一个系统。在一个部分,我有一个联系人表列表,其中包含用于选择联系人号码的复选框,我计划将这些选定的电话号码添加到收件人列表中,而无需将选定的号码输入到列表中。

我的问题是我不知道如何将它们转移到列表中;我正在使用 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 (){
            .
                        .
                        .
                 );
              }
           })
        }
        }]
4

1 回答 1

0

您可以通过CheckBoxSelectionModelcheck.getSelected()在哪里获取选定记录的数组。check

如果我理解正确,您想生成一个简单的收件人电子邮件字符串来向他们发送消息。如果是这种情况(例如'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..."
于 2012-06-19T19:52:24.637 回答