我遇到了fancytree的问题。 我有一个aspx页面,在代码隐藏上有一个webmethod。
我试图用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时,我无法填充这棵树!
提前致谢! 此致!
答案 0 :(得分:4)
对任何有兴趣的人... fancytree提出的ajax请求都是&#34; GET&#34;默认情况下请求。 我添加了如下所示的ajax选项,现在问题已经解决了。
$('#tree2').fancytree({
ajax: { type: "POST", contentType: "application/json" },
source: {
url: "/tree.aspx/getTreeData"
}
});
问候!