2014-06-24 81 views
1

我遇到了fancytree问题。 我有一个aspx页面,在代码隐藏方面有一个web方法。Fancytree未加载ajax请求

我想用ajax调用来初始化树,但由于某种原因,它看起来ajax调用没有到达那里。 这是我的javascript代码初始化树:

<script type="text/javascript"> 
    $(function() { 
     var DT = $.ui.fancytree; 
     var tree = ""; 
     $.ui.fancytree.debug("Using fancytree " + $.ui.fancytree.version); 

     /* Load tree from Ajax JSON 
     */ 
     $("#tree2").fancytree({ 
      source: { 
       url: "tree.aspx/getTreeData" 
      } 
     }); 

    }); 
</script>  

,这是我隐藏的webmethod:

namespace TreeGen 
{ 
public partial class tree : System.Web.UI.Page 
{ 

    [WebMethod] 
    [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json, XmlSerializeString = false)] 
    public static List<Curso> getTreeData() 
    { 
     JavaScriptSerializer TheSerializer = new JavaScriptSerializer(); 

     CourseSerializer course = new CourseSerializer(); 
     course.children = new List<Curso>() 
     { 
      new Curso(){ 
       key = "1", 
       title = "aaaa", 
      } 
     }; 
     List<CourseSerializer> courses = new List<CourseSerializer>() { course }; 
     string TheJson = TheSerializer.Serialize(course.children); 
     Console.WriteLine(TheJson); 

     return course.children; 
    } 
} 
} 

我到底做错了什么? 我试图对webmethod发出ajax请求,并且能够检索json字符串。 但是,当我使用fancytree我不能填充树!

在此先感谢! 关心!

回答

4

对于任何感兴趣的人... fancytree发出的ajax请求默认都是“GET”请求。 我添加了如下所示的ajax选项,现在问题已解决。

$('#tree2').fancytree({ 
    ajax: { type: "POST", contentType: "application/json" }, 
    source: { 
     url: "/tree.aspx/getTreeData" 
    } 
}); 

问候!