2014-03-12 7 views
0

Я инициализирую выпадающие списки двух кендо мультиселектов при загрузке моей страницы. Первый из них будет отображать данные из модального кода, который правильно обрабатывается. Когда вы выбираете некоторые пункты 2 или 3 из раскрывающегося списка и при закрытом событии будет сделан json-вызов для заполнения второго всплывающего меню. Я получаю данные json, но второй выпадающий список не привязан к данным.Kendo Multidropdown

Инициализировать оба выпадающие:

function PopulateClientNamesDropDown() { 


      $("#clientNamesDropDown").kendoMultiSelect({ 
           autoBind: false, 
           autoClose: false, 
           dataTextField: "text", 
           dataValueField: "value", 
           placeholder: "Select Client...", 
           itemTemplate: $("#ScriptTemplate").html(), 
           dataSource: clientDropDownData, 
           close: function(e) { 
            GetSiteNames(); 
           } 
          }); 
     } 


     function PopulateSiteNamesDropDown() { 


      $("#siteNamesDropDown").kendoMultiSelect({ 
       autoBind: false, 
       autoClose: false, 
       dataTextField: "text", 
       dataValueField: "value", 
       placeholder: "Select Site...", 
       itemTemplate: $("#ScriptTemplate").html(), 
       dataSource: clientDropDownData 

      }); 
     } 

Закрыть событие первого раскрывающегося списка:

function GetSiteNames() 
{ 
    var jqXhr = $.getJSON('/Report/GetSitesofSelectedClient', { selectedClientCode: "Aggregates" }, 'json'); 

     jqXhr.done(function (data) 
     { 
      alert(data); 
      $("#siteNamesDropDown").data("kendoMultiSelect").value(data); 
     }); 
    } 

} 
  1. В функции оповещения я могу видеть возвращаемые данные JSon, но не оказывающий
  2. данные из первого всплывающего всплывающего меню не попадают на закрытое событие. Поэтому в настоящее время я жестко закодирован.

ответ

1

использовать источник данных кендо для создания списка нескольких элементов.

$("#multiselect").kendoMultiSelect({ 
    dataSource: { 
    data: ["One", "Two"] 
    } 
}); 

метод .Value для выбора списка элементов или это даст вам список выбранных элементов, если вы не передаете никаких аргументов для этого.

-1

Следующий код показывает, как использовать каскадные кендо MULTISELECT с помощью JQuery:

var productsDataSource = new kendo.data.DataSource({ 
type: "odata", 
serverFiltering: true, 
transport: { 
    read: { 
     url: "Data URl pass here for product datasource", 
    } 
} 
}); 

$("#products").kendoMultiSelect({ 
autoBind: false, 
dataTextField: "ProductName", 
dataValueField: "ProductID", 
dataSource: productsDataSource 
}); 

$("#suppliers").kendoMultiSelect({ 
autoBind: false, 
dataTextField: "CompanyName", 
dataValueField: "SupplierID", 
dataSource: { 
    type: "odata", 
    serverFiltering: true, 
    transport: { 
     read: { 
      url: "Data URl pass here for Suppliers datasource" 
     } 
    } 
}, 
change: function() { 
    var filters = buildFilters(this.dataItems()); 
    productsDataSource .filter(filters); 
} 
}); 

function buildFilters(dataItems) { 
    var filters = [], 
    length = dataItems.length, 
    idx = 0, dataItem; 

for (int idx=0; idx < length; idx++) { 
    dataItem = dataItems[idx]; 

    filters.push({ 
     field: "SupplierID", 
     operator: "eq", 
     value: parseInt(dataItem.SupplierID) 
    }); 
} 
return filters; 
}