将检查列表导出到字段标签

时间:2012-06-19 16:06:08

标签: javascript extjs checkbox

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

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

1 个答案:

答案 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..."