2015-05-04 6 views
1

я мой магазин определяется следующим образом:dijit.form.ComboBox не работает с dojox.data.JsonRestStore

my_store = new dojox.data.JsonRestStore({ 
    target: '/my/rest/url/to/get/data' 
}); 

И я определил ComboBox, чтобы работать с этим магазина:

myComboBox = new dijit.form.ComboBox({ 
    store: my_store, 
    searchAttr: "name", 
    pageSize: 20, 
    autoComplete: true, 
    hasDownArrow: false, 
    highlightMatch: "all", 
    style: "width: 80%; height: 17px; float: left", 
    onChange: function() { 
     // Do something with my tree 
    }, 
    labelFunc: function (item, store) { 
     var splits = item.path[0].split("/"); 
     var label = item.name[0] + " (" 
      + splits.slice(0, splits.length - 1).join("/") + ")"; 
     return label; 
    } 
}, "searchBox"); 

Но я не может заставить его работать. ComboBox ничего не показывает. Но когда я использую dojo.data.ItemFileReadStore, он отлично работает.

Не могли бы вы предложить любое решение? Кстати, мне нужно использовать JsonRestStore, потому что я занимаюсь ленивым загруженным деревом.

ответ

0

Пожалуйста, проверьте вкладку сети в консоли своего браузера, чтобы проверить, не происходит ли повторный вызов. Может потребоваться полный URL-адрес. Пример: 'http://localhost//my/rest/url/to/get/data'

В качестве альтернативы вы можете использовать dojo.xhrGet, чтобы вернуть результат Json и создать из него dojo.data.ItemFileReadStore. Это также будет загружать combobox, когда вы действительно выполняете вызов ajax.

Спасибо

+0

Спасибо за ваш ответ, yep, url загружен и возвращает данные, но ничего не происходит без дополнительных шагов. Я создал хранилище памяти для работы с ComboBox и заполнил его данными, полученными JsonRestStore. Это помогло. – androberz

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