Как установить значение по умолчанию в раскрывающемся списке jquery Kendo на основе атрибута json - PullRequest
1 голос
/ 23 октября 2019

Я думал, что это будет очень просто, но не могу найти решение. У меня есть раскрывающийся список Kendo с использованием Jquery. Я не могу понять, как динамически установить значение по умолчанию на основе атрибута в Json.

Источник данных таков:

var dataStores2 = {"stores":[{"id":100, "name":"Shop 1" ,"defaultStore":false},{"id":150, "name":"Shop 2" ,"defaultStore":true},{"id":900, "name":"Shop 3" ,"defaultStore":false}]};

Раскрывающийся список построен с использованием:

 var storeList = $('#StoreNameSelect').data('kendoDropDownList');

              if (!storeList) {
                console.log('store list is not initialised');
                // create DropDownList from input HTML element
                $('#StoreNameSelect').kendoDropDownList({
                  dataTextField: 'name',
                  dataValueField: 'id',
                  dataSource: dataStores2.stores,
                  dataBound: function(e) {
                    // handle the event
                    console.log(this);
                    this.select(1);
                }
                });
              }

Вы можете видеть, что я жестко кодирую значение по умолчанию в событии dataBound, используя: this.select (1);

Как я могу динамически основать это логическое значение defaultStore в Json?

1 Ответ

0 голосов
/ 24 октября 2019

Я использую это как решение, но было бы интересно, если есть лучший способ сделать это.

      if (!storeList) {
        console.log('store list is not initialised');
        // create DropDownList from input HTML element
          $('#StoreNameSelect').kendoDropDownList({
            dataTextField: 'name',
            dataValueField: 'id',
            dataSource: dataStores2.stores,
            dataBound: function(e) {
              // handle the event
              for (var i=0,len=dataStores2.stores.length; i<len; i++){
                //console.log(dataStores2.stores[i].defaultStore);
                if(dataStores2.stores[i].defaultStore){
                  this.select(i);
                }
              } 
          }
        });
      }
...