0

フォーラム メンバー コンボボックス名で選択した値が gridpanel 列に表示されるという問題が 1 つあります。

リソースコンボボックスを含む1つの列を持つgridPanelを持っており、ユーザーはリソースから複数の値を選択できます。

以下は、列コンボボックスのグリッドパネル列を持つ私のグリッド パネル列です

{
             xtype: 'gridcolumn',
             dataIndex: 'resourceid',
             text: 'Resource',
             field: resourcecombo
        },

リソースコンボ

var resourcecombo = new Ext.form.ComboBox({
     id: 'resourceid',
     name: 'resourceid',
     emptyText: 'Select resource',
     displayField: 'firstname',
     store: Ext.create('rms.store.employee'),
     valueField: 'id',
     multiSelect: true,
     queryMode: 'local',
     typeAhead: true

});

ここでリソースのリストを取得し、複数選択もできます。この複数選択に基づいて、ID がサーバーに送信され、応答で値をグリッド列に設定したいと考えています。

しかし、何か問題があり、サーバーから正しい応答を得ていますが、私の gridcolumn はこの列に 1 つの名前しか表示しません。.

リシ、ヨギ、ヒレンなど、選択 したすべてのリソースの名前をコンマ記号で区切って表示したい

解決策 は、以下のコードで gridcolumn を変更するだけです

xtype: 'gridcolumn',
             dataIndex: 'resources',
             header: 'Resources name',
             field: resourcecombo,
             renderer: function(resources){
                var result = [];
                resources = resources || [];
                for (var idx = 0, len = resources.length; idx < len; idx++ ){
                    var value = resources[idx].name;
                    if(value){
                        result.push(value);
                    }
                }
                return result.join(', ');
            }

以下のコードでモデルを変更します

Ext.define('rms.model.taskmainModel', {
    extend : 'Ext.data.Model',

    fields : [ 
               { name : 'id', type : 'int' }, 
               { name : 'taskname', type: 'string'},
               **{ name : 'resources', type: 'auto'},**
               { name : 'cmpname', mapping: 'project.company.cmpname'}

             ]

});

上記の解決策は私にとってはうまくいきます。これが誰かの助けになることを願っています。

ご協力ありがとうございました。

4

1 に答える 1

0

コンボボックスに表示される名前を 'firstname' に指定しました。この文字列は、その下の値 (つまり 'id') に 1-1 で対応します。自分の思い通りにいかない場合は、次のことを考えてみてください。

  • 複数のアイテムが選択され、このコンボボックスが「フォーカス」状態にない場合、「選択されたアイテム」はコンボボックスにどのように表示されますか? (コンボは、選択した項目のランダムな 1 つを表示しますか、それともメニューのように一覧表示しますか?)
  • コンボボックスをもう一度クリックして他のアイテムを選択した後、「選択したアイテム」はどのように再表示されますか? (複数のアイテムが選択されている場合、それらはすべて、あなたが説明したように、同じ「選択されたすべてのリソースの名前、リシ、ヨギ、ヒレンのようにコンマ記号で区切られた」を表示しますか?)

別のフィールドを使用してコンマ区切りの名前を表示するなど、他の方法を選択することをお勧めします。

于 2012-04-17T08:43:38.560 に答える