2016-03-29 18 views
0

seçilen metni almak ve burada benim kodu için temel var: Ben ilk parametre almamalıdır ve listesini döndürür 2 api aramaları var http://demos.telerik.com/kendo-ui/dropdownlist/cascadingdropdownlistBasamaklı kendoDropDownList, ben Kendo UI için oldukça yeni İlk açılır

Öğeler (Id, Ad) İkinci api çağrısı bir Kimlik alır ve öğelerin bir saniye listesini (aynı zamanda Kimlik ve Ad ile yalnızca bir nesne) döndürür. Buradan 2 basamaklı kendo açılırsa sahip olmak istiyorum. benim sorunum ikinci kişinin url hep id boş olma var ve doğru sözdizimi anlamaya olamaz Ancak:

  // First dropdown, all good 
      var controllers = $("#Controller").kendoDropDownList({ 
       optionLabel: "Select controller...", 
       dataTextField: "Name", 
       dataValueField: "Id", 
       dataSource: { 
        serverFiltering: true, 
        transport: { 
         read: "/SharedData/GetControllers/" 
        } 
       } 
      }).data("kendoDropDownList"); 

      // second dropdown, always hit the api method with the id being null or empty (depending on syntax for url) 
      var actions = $("#Action").kendoDropDownList({ 
       autoBind: true, 
       cascadeFrom: "controllers", 
       cascadeFromField: "Id", 
       optionLabel: "Select Action...", 
       dataTextField: "Id", 
       dataValueField: "Name", 
       dataSource: { 
        serverFiltering: true, 
        transport: { 
         // HELP: need pass id to this route (which is id of selected controller) 
         read: "/SharedData/GetControllerActions/id=" + $("#Controller").data("kendoDropDownList").text() 
        } 
       } 
      }).data("kendoDropDownList"); 
+0

Ben render kaynağında bakarsak, Şu anda seçili değeri (bu durumda "AdvancedSearchController") bir süre içinde olduğunu görüyoruz . – Nico

+0

'

+0

, ikinci açılır sayfanızı veri kaynağı olmadan başlatmayı deneyebilir, ardından ekleyebilirsiniz. y'de bir "değişiklik" etkinliği bir veri kaynağını başlatan ve ikinci açılır kapanış veri kaynağını yeni başlangıç ​​durumuna getiren ilk açılır kapanışı. – philr

cevap

1

Sorun kaynağınız yalnızca bir kez set olur olduğunu düşünüyoruz - başlatma sırasında - ve bu zamanda açılırlığın değeri boştur. Ne yapardım böyle İlk açılır üzerinde değişiklik olay eklemek geçerli:

 var controllers = $("#Controller").kendoDropDownList({ 
      optionLabel: "Select controller...", 
      dataTextField: "Name", 
      dataValueField: "Id", 
      dataSource: { 
       serverFiltering: true, 
       transport: { 
        read: "/SharedData/GetControllers/" 
       } 
      }, 
      change: function(e) { 
       setSecondDS(); 
      } 
     }).data("kendoDropDownList"); 

     var setSecondDS = function() { 
      //initialize your new kendo datasource here 
      var dataSource = new kendo.data.DataSource({ 
       //your stuff here 
       transport: 
       serverFiltering: 
      }); 

      $("#Action").data("kendoDropDownList").setDataSource(dataSource); 
     } 
+0

Teşekkürler ÇOK! Bu saatlerce bununla uğraştı (evet, ne yazıyorsun iş yapar) – Nico

+0

Sorun değil, yardımcı olabilirim @Nico – philr