gpt4 book ai didi

asp.net-mvc - Dynatree 与 ASP.NET MVC

转载 作者:行者123 更新时间:2023-12-02 15:36:43 25 4
gpt4 key购买 nike

有人有任何使用 Dynatree 插件与 MVC 的示例吗?我一直在努力解决这个问题,但没有取得太大进展。我有一个返回 JsonResult 的操作方法(但选择基础表中的所有列,不确定这是否是问题),并且在我的 initajax 调用中,我所做的就是调用此方法。

如果不太麻烦,我正在寻找示例 View 和 Controller 操作方法。

预先感谢您的帮助

最佳答案

您需要创建一个对象来序列化节点,例如。

public interface ITreeItem
{
}


/// <summary>
/// Tree Item Leaf.
/// </summary>
public class TreeItemLeaf :ITreeItem
{
/// <summary>
/// Gets the Title.
/// </summary>
public string title;

/// <summary>
/// Gets the Tooltip.
/// </summary>
public string tooltip;

/// <summary>
/// Gets the key.
/// </summary>
public string key;

/// <summary>
/// Gets the Data.
/// </summary>
public string addClass;

/// <summary>
/// Gets the Children.
/// </summary>
public IList<ITreeItem> children;

/// <summary>
/// Gets the rel attr.
/// </summary>
public string rel;

/// <summary>
/// Gets the State.
/// </summary>
public bool isFolder;

/// <summary>
/// Gets the State.
/// </summary>
public bool isLazy;

/// <summary>
/// Initializes a new instance of the <see cref="TreeItemLeaf"/> class.
/// </summary>
public TreeItemLeaf()
{
children = new List<ITreeItem>();
}
/// <summary>
/// Initializes a new instance of the <see cref="TreeItemLeaf"/> class.
/// </summary>
/// <param name="type">The type of node.</param>
/// <param name="id">The Id of the node.</param>
/// <param name="title">The Title of the node.</param>
/// <param name="tooltip">The Tooltip of the node.</param>
public TreeItemLeaf(String type, Guid id, String title, String tooltip)
{
key = id.ToString();
this.title = title;
isFolder = false;
isLazy = false;
this.tooltip = tooltip;
children = new List<ITreeItem>();
}

}


/// <summary>
/// Tree Item.
/// </summary>
public class TreeItem : TreeItemLeaf
{
/// <summary>
/// Gets the State.
/// </summary>
public new bool isFolder;

/// <summary>
/// Initializes a new instance of the <see cref="TreeItem"/> class.
/// </summary>
public TreeItem() : base()
{
}

/// <summary>
/// Initializes a new instance of the <see cref="TreeItem"/> class.
/// </summary>
/// <param name="type">The type of node.</param>
/// <param name="id">The Id of the node.</param>
/// <param name="title">The Title of the node.</param>
/// <param name="tooltip">The tooltip of the node.</param>
public TreeItem(String type, Guid id, String title, String tooltip) : base(type, id, title, tooltip)
{
isFolder = true;
isLazy = true;
}

}

一旦你有了这个,你可以返回 Json(IList<ITreeItem>)您需要根据您的结果来建立它..

如果您访问 Dynate 演示 http://wwwendt.de/tech/dynatree/doc/samples.html ,您可以使用 Firefox/Firebug 研究 HTTP 请求,以准确查看传入和返回的内容。

我在 View 中的树如下:

        // --- Initialize first Dynatree -------------------------------------------
$("#tree").dynatree({
fx: { height: "toggle", duration: 500 },
selectMode: 1,
clickFolderMode: 1,
children : @Html.Raw(String.Format("{0}", ViewData["tree"]).Replace("\"children\":[],", "")),
onLazyRead: function (node) {
node.appendAjax({
url: "@Url.Action("treedata", "tree")",
type: "GET",
data: { "id": node.data.key, // Optional url arguments
"mode": "all"
},
error: function(node, XMLHttpRequest, textStatus, errorThrown) {

}
}
});
}, //.... cut short for brevity

我将初始树状态嵌入到“children:”部分中。 Ajax 读取是在“onLazyRead:”部分设置的。

我的 Ajax 调用是:

    public JsonResult TreeData(FormCollection form)
{
return GetTreeData(Request.QueryString["id"], Request.QueryString["uitype"]);
}

GetTreeData() 函数返回 Json(ITreeItem);

我建议您使用 Firefox/Firebug 及其“NET”功能来查看正在发生和返回的情况。

希望有帮助。

关于asp.net-mvc - Dynatree 与 ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7598621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com