2016-05-13 92 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); 
      } 
     })