C# 动态树控制
我正在使用来自的名为“tree”的控件。但在我的例子中,我希望在第一个最高级别加载,然后单击其中一个节点加载它的子节点C# 动态树控制,c#,javascript,asp.net-mvc,jquery,C#,Javascript,Asp.net Mvc,Jquery,我正在使用来自的名为“tree”的控件。但在我的例子中,我希望在第一个最高级别加载,然后单击其中一个节点加载它的子节点 <ul id="tt" checkbox="true" animate="true"></ul> $(function() { $('#tt').tree({ data: @Html.Raw(Model.Tree) }); }); 在方法LoadDepartments
<ul id="tt" checkbox="true" animate="true"></ul>
$(function() {
$('#tt').tree({
data: @Html.Raw(Model.Tree)
});
});
在方法LoadDepartments中,我有正确的结构,但树没有显示新元素。问题是如何清理树中以前的内容并用新内容填充,也许我做错了什么?
这棵树应该有你需要的功能,它非常轻量级,易于使用。我不是在做广告,但几周前我也遇到过同样的情况,这为我提供了一个解决方案。它还将跟踪打开的节点等。您的JavaScript代码需要一些JSON,但您的操作返回一个视图。这是正确的吗?我是正确的,但结果是,sameI可能会用
返回Json(hospital,JsonRequestBehavior.AllowGet)替换最后两行代码>
$(function() {
$('#tt').tree({
onBeforeExpand: function(node) {
var hospitalId = node.id;
$.getJSON('@Url.Action("LoadDepartments")', { hospitalId: hospitalId }, function () {
});
}});});
[HttpGet]
public ActionResult LoadDepartments(Guid hospitalId)
{
LoadHospitals();
var departments = _templateAccessor.GetDepartments(hospitalId);
var hospital = tree.Where(obj => obj.id == hospitalId.ToString()).FirstOrDefault();
if (hospital != null)
{
foreach (var department in departments)
{
DataTreeModel dep = new DataTreeModel();
dep.id = department.Id.ToString();
dep.text = department.Name;
dep.state = "closed";
hospital.children.Add(dep);
hospital.state = "open";
}
}
var result = SerializeToJsonString(tree);
return Json(result, JsonRequestBehavior.AllowGet);
}