Ext js Combo box help - PullRequest
       0

Ext js Combo box help

3 голосов
/ 19 января 2011

Я пытаюсь определить выпадающий список со списком Ext Js, который бы отображал мои "Праздники", сохраненные в массиве.Пожалуйста, исправьте меня, где я могу ошибаться, так как JSP не будет отображать выпадающий список.

  ...
  <body>
  <div class="left " style="color:#333333;padding-bottom:8px;padding-left:13px;width:99%;" id="Holiday">        

  <span class="formastrickmargin"><strong></strong></span>
  </div>
  <div id="Holiday" class="left " style="padding-bottom:6px;padding-left:15px;width:99%;">

  </div>
   </body>

  <script type="text/javascript">   
  var availableTags = ["New years Day", "Martin Luther King Day", "Groundhog Day", "Valentine's Day", "Washington's Birthday", 
                 "Easter", "Earth Day", "National Arbor Day", "Mother's Day", "Memorial Day", "Flag Day", "Father's Day", 
                 "Independence Day", "Labor Day", "Columbus Day", "Halloween", "Veterans Day", "Thanksgiving Day"];
   var combo1;
   var defaultDDText = 'Enter the Site Id here, or select from dropdown.';
   var Holidaystore = new Ext.data.ArrayStore({
         root: 'availableTags',
         autoLoad:true,
         fields: ['availableTags'],
         data: availableTags
        });


   Ext.onReady(function(){
   Ext.QuickTips.init();
   function initializeHoliday(){

    combo1 = new Ext.form.ComboBox({ 
            id:'Holiday',
            typeAhead: true,  
            triggerAction: 'all',
            emptyText: defaultDDText,
            store:Holidaystore,
            selectOnFocus:true,
            width:408,
            listWidth: '410',               
            mode: 'local',
            minChars : '3',
            renderTo:'Holiday',
            displayField: 'availableTags',

}); }
initializeHoliday();  
});

 </script>

Ответы [ 3 ]

3 голосов
/ 19 января 2011

Начну с удаления root: или

var availableTags = { 
  data : ["New years Day", "Martin Luther King Day", "Groundhog Day", 
          "Valentine's Day", "Washington's Birthday", "Easter", "Earth Day", 
          "National Arbor Day", "Mother's Day", "Memorial Day", "Flag Day", 
          "Father's Day", "Independence Day", "Labor Day", "Columbus Day", 
          "Halloween", "Veterans Day", "Thanksgiving Day"]
}; 

и следующего root: data

2 голосов
/ 20 января 2011

На самом деле вам не нужен ключ 'root'.То, что вы пытаетесь сделать, это передать что-то, похожее на то, что JsonReader потребляет, в считыватель массива.

Вам необходим двухмерный массив:

var data = [
    ["New years"],
    ["Martin luther king day"],
    ["..."]
];

var Holidaystore = new Ext.data.ArrayStore({
         autoLoad:true,
         fields: ['name'],
         data: data
        });

Вы указываете вЧитайте, что каждая запись имеет 1 поле (имя), поэтому ваш массив данных состоит из списка или записей (внешний массив), каждая запись представляет собой список полей (внутренние массивы).Вы указываете только 1 поле, поэтому внутреннему массиву требуется только 1. Отображение массива в поля записей выполняется по индексу во внутреннем массиве.

Удачи, Роб

0 голосов
/ 20 января 2011

Работает сейчас !!!!!!!!!!

  <script type="text/javascript">
  var datas = [['AL', 'Alabama'],['AK', 'Alaska']];  
Ext.onReady(function(){
Ext.QuickTips.init();

var Holidaystore = new Ext.data.ArrayStore({
    autoLoad:true,          
    fields: ['abbr', 'state'],      
    data: datas
}); 

var combo = new Ext.form.ComboBox({
    store: Holidaystore,
    displayField:'state',
    valueField: 'abbr',
    typeAhead: true,
    mode: 'local',
    forceSelection: true,
    triggerAction: 'all',
    emptyText:'Select a Holiday...',
    selectOnFocus:true,
    renderTo: 'Holidayz'
});



});
 </script>
 ....
 <body>
  ...
  <div id="Holidayz"> 
  </div>
  ...
  </body>
  <html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...