2016-05-13 76 views
0

我在使用從WCF webservice返回的json對象創建kendo菜單時遇到問題。 Web服務調用正在工作,但綁定到控件不起作用?來自json對象的Kendo UI菜單

這是我的示例代碼。

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
<script> 
    $(document).ready(function() { 

     var JsonMenu; 

     $.ajax({ 
      type: "GET", 
      url: "cmService.svc/GetNavMenu", 
      //data: JSON.stringify(params), 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      processData: true, 
      success: function (data, status, jqXHR) { 
       // alert("success..." + data); 
       JsonMenu = data; 
      }, 
      error: function (xhr) { 
       alert(xhr.responseText); 
      } 
     }); 



     $("#menu").kendoMenu({ 
      dataSource: JsonMenu 
     }); 

    }) 

<ul id="menu"> </ul> 

</asp:Content> 

,這是對象從web服務返回。

[Object { text="BBC Home", url="http://www.bbc.co.uk", items=null}, Object { text="BBC Sport", url="http://www.bbc.co.uk/sport", items=null}] 

在頁面加載時不會創建菜單,但如果我用螢火步出現的菜單???我顯然做了一些愚蠢的事情,但無法看到它。我對此很新,所以任何幫助將不勝感激。

謝謝

回答

0

Doh!我發現什麼是錯的。

在我從服務器獲取數據之前,我的控件正在初始化。

通過在成功事件中添加初始化來糾正它。

  $.ajax({ 
      type: "GET", 
      url: "cmService.svc/GetNavMenu", 
      //data: JSON.stringify(params), 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      processData: true, 
      success: function (data, status, jqXHR) { 
       // alert("success..." + data); 

       $("#menu").kendoMenu({ 
        dataSource: data 

       }) 
      }, 
      error: function (xhr) { 
       alert(xhr.responseText); 
      } 
     })