剑道UI树形视图当前数据源的帖子
Kendo UI treeview current datasource post
我需要在FTP中创建一个文件夹结构,类似于我视图上的树结构。我想允许用户在创建文件夹之前编辑树形结构。
我有一个与服务器绑定的TreeView:
@model IEnumerable<TreeViewItemModel>
@(Html.Kendo().TreeView()
.Name("PipelineStructureMajor")
.BindTo(Model)
.ExpandAll(true)
.DragAndDrop(true)
)
绑定正常。与一些客户端重组(追加/拖拽/删除一些节点),我想张贴树视图(根节点及其所有子节点递归)到我的动作。
public ActionResult _CreateFtp(TreeViewItemModel root)
{
//FTPClient in action : Parsing whole tree and converting into the folder structure
return PartialView("_TreeMajor", <refreshed model>);
}
在客户端,我试图提醒treeview数据,它显示根节点文本,其Items为空。
$('#createFtpConfirmed').click(function () {
//TreeView data
var treeData = $("#PipelineStructureMajor").data("kendoTreeView").dataSource.data();
alert(JSON.stringify(treeData));
$.ajax({
url:'@Url.Action("_CreateFtp", "Structure")',
data: {root: treeData},
type:"POST",
success: function (result, status, xhr) {
//Doing something useful
}
});
});
有办法做到这一点吗?
正如我的问题所解释的,我有三个步骤:
- 服务器绑定默认树
- 编辑节点(删除、添加、重命名节点)
- 取回所有树视图数据(包括添加的)
看完剑道文档和这个演示后,我明白了。我必须使我的树数据源可观察,以反映节点的变化。为此,我不得不使用kendo-web-scripts(而不是服务器包装器)。所以我把第一步改成:
- 远程绑定默认树(使我的数据源可观察)
我想要我的树视图完全加载一次远程和看到这个演示,我发现树视图只允许一次加载一个关卡。(UserVoice已经排队,但剑道团队仍然忽略它)。所以我用了一个简单的方法:
<div id="PipelineStructureMajor"></div>
<button id="createandorinsert" class="k-button hugebtn">Send</button>
<script>
$.get("../Structure/LoadTreeData", function (data) {
var sat = new kendo.data.HierarchicalDataSource({
data: data
});
var pipelinetree = $("#PipelineStructureMajor").kendoTreeView({
dataSource: kendo.observableHierarchy(sat),
dragDrop: true,
select: onNodeSelect
}).data("kendoTreeView");
});
</script>
我将数据发送给控制器动作,如
$('#createandorinsert').click(function (e) {
//TreeView's current datasource
var tree = $("#PipelineStructureMajor").data("kendoTreeView").dataSource.data();
$.ajax({
url: '../Structure/FtpCreateAndOrSync',
type: 'POST',
data: {
xmlNodes: JSON.stringify(tree)
},
beforeSend: function (xhr) {
alertSpan.removeClass().addClass("loading");
},
success: function (result, status, xhr) {
alertSpan.removeClass().addClass("success");
},
error: function (jqXhr, textStatus, errorThrown) {
alertSpan.removeClass().addClass("error");
}
});
});在控制器端,我将字符串json反序列化为:仅显示部分代码
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult FtpCreateAndOrSync(string xmlNodes)
{
//Deserializing nodes
var xmlNodesModels = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<IEnumerable<XmlNode>>(
xmlNodes).ToArray();
////Alternative
//var data = JsonConvert.DeserializeObject<IEnumerable<XmlNode>>(xmlNodes);
return Json(new { cr = createResult, dr = dbResult });
}
相关文章:
- Kendo UI网格:数据源刷新后,我丢失了分页
- Kendo UI数据源使用javascript对象设置
- Kendo UI数据源为空
- Kendo UI甘特图刷新数据源
- 点燃 UI 组合框数据源更新与挖空
- 如何在更改数据源后保留 UI 网格选择
- 剑道 UI 从数据源中多选所选值
- 如何将项目添加到剑道 UI 网格的数据源
- 对于这个 Kendo-UI 数据源和 Kendo-UI 网格,我的 JSON 响应应该是什么样子的
- 使用默认选定的其他数据源时,从 ui-select 选项中删除重复项
- Kendo UI网格数据源触发过滤器上的额外ajax请求
- Kendo UI sync()在数据源时未启动_destroyed is populated(dirty)
- Kendo UI DropDownList来自外部url的数据源不工作
- 博士剑道UI与数据源(CRUD)
- 剑道ui数据源“包含”过滤器不工作
- 剑道UI数据源过滤器"
- 剑道UI树形视图当前数据源的帖子
- jQuery UI自动完成-外部javascript数据源的语法
- 剑道UI树视图和数据源:从基本到SPA
- 剑道UI:在按钮点击事件上动态改变网格的数据源