2012-04-17 6 views
0

участник форума У меня есть одна проблема, показывающая выбранные значения combobox в столбце gridpanel.как отображать значения multiselect из combobox в gridpanel extjs 4

У меня есть gridPanel с одним столбцом, содержащим выделение ресурсов, и пользователь может выбрать несколько значений из ресурса.

ниже мой GridPanel колонок с колонкой выпадающего GridPanel колонком

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

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 

}); 

здесь я получаю список ресурсов, и я могу сделать MULTISELECT также. На основе этого мультиселекса идентификатор отправляется на сервер, и с ответом я хочу установить значения в столбец сетки.

но, что-то не так, я получаю правильный ответ от сервера, , но моя gridcolumn отображает только одно имя в этом столбце..

Я хочу, чтобы отобразить имя всего ресурса, выбранного, разделенных запятыми знак , как риши, йог, Hiren и т.д.

решение просто изменить 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'} 

      ] 

}); 

выше решение работает для меня, надеюсь, это может помочь кому-то.

Спасибо за вашу поддержку.

ответ

0

Вы указали имя, отображаемое в поле со списком, это «первое имя», и эта строка будет соответствовать 1-1 его значению ниже (то есть «id»). Если вы думаете, что не работает свой путь, думать только о них:

  • Как будут «выбранные элементы» будут отображаться на выпадающий список, если выбрать несколько пунктов, и это выпадающий не в «фокус» состоянии? (Комбинация отобразит один случайный элемент выбранного элемента или перечислит их как в меню?)
  • Как будут отображаться «выбранные элементы» RE-display после того, как вы снова нажмете на combobox, чтобы выбрать некоторые другие элементы? (Если выбрано несколько элементов, будут ли они отображаться одинаковое «имя всего выбранного ресурса, разделенного знаком запятой, например, rishi, yogi, hiren», как вы описали?)

Поэтому я рекомендую выберите другие способы, например: использование другого поля для отображения разделенных запятыми имен

+0

благодарю вас за ответ, моя проблема решена. Выше мое решение –