2012-06-18 2 views
0

Я пытаюсь создать rallymultiobjectpicker, в котором перечислены пользователи рабочей области. Однако, похоже, он не загружает значения для displayField, независимо от того, на что он установлен в listCfg. В документации указано, что по умолчанию используется «Имя», к которому я переключился на «FirstName», «ObjectID», «DisplayName», «_refObjectName» и т. Д. Никакие изменения не отражаются, поскольку divs, которые должны содержать значения для displayField остаются пустыми. Я проверил объекты, а вот пример того, что, как правило, возвращаются (все пустые поля генерируются и не изменяются):Rally App SDK 2.0: rallymultiobjectpicker для пользователей, не показывающих displayField

->Object 
    CreationDate: null 
    Disabled: false 
    DisplayName: "" 
    EmailAddress: "" 
    FirstName: "" 
    LastName: "" 
    LastPasswordUpdateDate: null 
    MiddleName: "" 
    ObjectID: 1234567890 
    OnpremLdapUsername: "" 
    RevisionHistory: "" 
    Role: "" 
    ShortDisplayName: "" 
    Subscription: "" 
    TeamMemberships: "" 
    UserName: "" 
    UserPermissions: "" 
    UserProfile: "" 
    _objectVersion: "12" 
    _p: "2" 
    _ref: "https://rally1.rallydev.com/slm/webservice/1.33/user/1234567890.js" 
    _refObjectName: "John D" 
    _type: "user" 
    creatable: false 
    deletable: false 
    groupSelected: "Available" 
    matchedText: undefined 
    updatable: true 
    __proto__: Object 

Вот пример кода используется:

Ext.widget('rallymultiobjectpicker', { 
    modelType: 'user', 
    fieldLabel: 'Owners', 
    listCfg: {displayField: "DisplayName", autoScroll: true}, 
    stateful: false, 
    labelWidth: 50, 
}); 

EDIT: Используя аналогичную конфигурацию, указанную в ответе ниже, эта проблема возникла снова в версии 2.0p3. Нет отображаемого текста опции, несмотря на наличие displayField, указанного в listCfg. Я также должен отметить, что фильтры/customQuery кажутся полностью разбитыми, поскольку они не работают, чтобы ограничить набор данных, который у меня есть в другом приложении rallymultiobjectpicker.

ответ

1

Необходимо указать конфигурацию хранилища данных, которая извлекает экран отображения с сервера. Вам нужно будет указать всю конфигурацию магазина, а не только параметр выборки. Вам также необходимо передать опцию конфигурации для filterFieldName, чтобы функция автоматического завершения работала правильно. Примерная конфигурация приведена ниже:

Ext.widget('rallymultiobjectpicker', { 
    modelType: 'user', 
    fieldLabel: 'Owners', 
    filterFieldName: 'DisplayName', 
    storeCfg: { 
     autoLoad: false, 
     fetch: 'DisplayName', 
     pageSize: 200, 
     sorters: [ 
      { 
       property: 'DisplayName', 
       direction: 'ASC' 
      } 
     ], 
     remoteGroup: false, 
     remoteSort: false, 
     remoteFilter: false, 
     limit: Infinity 
    }, 
    listCfg: { 
     displayField: 'DisplayName' 
    }, 
    stateful: false, 
    labelWidth: 50 
}); 
+0

Спасибо за пример. Тем не менее, у меня возникли проблемы с ограниченными возможностями пользователей, показывая вверх, независимо от того, указываю ли фильтр для только тех, кто не отключены: фильтры: [ \t \t \t \t \t \t \t \t \t { \t \t \t \t \t \t \t \t \t \t свойство: 'Disabled', \t \t \t \t \t \t \t \t \t \t значение: 'ложь' \t \t \t \t \t \t \t \t \t} \t \t \t \t \t \t \t \t] Я также попытался указать "ложь" без кавычек. – user1417835

+0

Другая проблема, с которой я сталкиваюсь, - это выяснить, как фильтровать UsePermissions, поскольку это массив UserPermission. – user1417835

+0

Существует ошибка, при которой фильтры storeCfg очищаются каждый раз, когда хранилище данных сбрасывается. На данный момент вам нужно будет добавить Disabled для значений выборки, и вы можете указать customQuery. fetch: ['DisplayName', 'Disabled'], customQuery: '(Disabled = true)' – ebricey

Смежные вопросы