MVC3 JSON Telerik MVC TreeView Javascript

MVC3 JSON Telerik MVC TreeView Javascript

本文关键字:TreeView Javascript MVC Telerik JSON MVC3      更新时间:2023-09-26

我正在尝试绑定来自json的数据。 在控制器中,我正在发送

......
public JsonResult LoadTree()
........
return Json(jn, JsonRequestBehavior.AllowGet);

在调试中,我获取 jn 中的值(47 个项目,每个项目有两个输入(文本和值(。

在视图中,我使用以下脚本:

function onDataBinding(e) {
    var url = 'CourseCases/LoadTree';
    var result;
    $.ajax({
        url: url,
        data: {},
        contentType: "application/json",
        success: function (data) {
            alert(data);
            var treeview = $("#TreeView").data("tTreeView");
            treeview.bindTo(data);
        }
    });
}

它不起作用,警报显示对象,对象;并且树视图为空白!知道为什么吗? 提前谢谢。

实际上,

您要发送的属性应该称为ValueText,而不是valuetext。这是一个对我来说很好用的例子。

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
    public ActionResult LoadTree()
    {
        var jn = new[] 
        {
            new { Value = "1", Text = "Item 1" },
            new { Value = "2", Text = "Item 2" },
            new { Value = "3", Text = "Item 3" },
        };
        return Json(jn, JsonRequestBehavior.AllowGet);
    }
}

查看 ( ~/Views/Home/Index.cshtml (:

<script type="text/javascript">
    function onDataBinding(e) {
        var url = '@Url.Action("LoadTree")';
        var result;
        $.ajax({
            url: url,
            data: { },
            success: function (data) {
                var treeview = $("#TreeView").data("tTreeView");
                treeview.bindTo(data);
            }
        });
    }    
</script>
@(Html
    .Telerik()
    .TreeView()
    .Name("TreeView")
    .ClientEvents(events =>
    {
        events.OnDataBinding("onDataBinding");
    })
)

也许你应该直接在 $.post 的回调方法中调用 treeview.bindTo。我想使用当前代码,您可能会在回调中确保 jn == 内容之前将树视图绑定到 jsonObject == jn。如果您发出警报,则会添加很大的延迟,并且会给 AJAX 帖子足够的时间来完成和运行回调。