[英]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);
}
});
}
它不起作用,警报显示对象,对象; 树视图为空! 知道为什么吗? 提前致谢。
实际上,您要发送的属性应该称为Value
和Text
而不是value
和text
。 这是一个对我来说很好的例子。
控制器:
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.