繁体   English   中英

MVC3 JSON Telerik MVC TreeView Javascript

[英]MVC3 JSON Telerik MVC TreeView Javascript

我正在尝试从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发布足够的时间来完成和运行回调。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM