用Javascript更改Kendo TreeView节点名称-我不'I don’我不知道怎么做
Change a Kendo TreeView Node Name with Javascript - I don't see how to do this
我想要编辑我选择的父节点的名称
-
我知道如何使用javascript添加新的父节点
var selectedNode = treeview.select(); treeview.append({ ReportGroupName: $("#addNodeText").val()
-
我知道如何在文本框中显示所选节点
$("#groupNameSelected").val(nodeName);
--用
select: onSelect,
调用
但是,我想更改节点文本
我在谷歌上搜索API,我想要一个干净的javascript或jquery方法来简单地更新树视图
我一直在像这个一样设置代码
var treeview = $("#treeview").data("kendoTreeView");
var selected = treeview.select(), item = treeview.dataItem(selected);
if (item) {
console.log('Selected item: ' + item.ReportGroupName + ' : ' + item.Id + ' (uid: ' + item.uid + ')');
}
但是如何更改树视图选定的节点文本?
更新:
我在telerik论坛上发现了这个代码
它确实更改了文本,但在我尝试将树视图数据写入之后
console.log(mydatasource.data()); // i expect this to change as adding nodes does update this ...
function refreshTreeNode(data)
{
var currentText = $("#treeview").data("kendoTreeView").select().find('span.k-in').first().text();
var node = $("#treeview").data("kendoTreeView").select().find('span.k-in').first();
var nodeSpan = $("#treeview").data("kendoTreeView").select().find('span.k-in > span.k-sprite').first();
node.text('');
node.append(nodeSpan);
node.append(data);
}
对数据的更改并没有发生在树视图数据上,只是在UI上我看到了更改。为什么?
它之所以只更改UI,是因为存储在数据源上的数据没有更改
相反,有更好的解决方案取决于你对数据的了解,那就是:
- 数据源(您需要能够访问数据源以利用Datasource.get()和set())
- 记录Id(如果知道Id,可以使用datasource.get(Id)从数据源获取数据)
- 记录uid(如果没有,可以使用uid属性查看它们try-inspect元素)
以下示例的说明:
- 展开所有节点
- 选择任意节点
- 类型名称替换为
- 点击"更改名称"按钮
- 要查看数据源的更新,请点击"检查数据源"按钮并打开控制台,然后在那里进行搜索
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Kendo UI Snippet</title>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.226/styles/kendo.common.min.css" />
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.226/styles/kendo.rtl.min.css" />
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.226/styles/kendo.silver.min.css" />
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.226/styles/kendo.mobile.all.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2016.1.226/js/kendo.all.min.js"></script>
</head>
<body>
<div id="treeview"></div>
<input type="text" id="changeNameTo"></input>
<button id="changeNameNow">Change Name</button>
<button id="checkDataSource">Check Datasource Data on console</button>
<script>
var dataSource = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: "http://demos.telerik.com/kendo-ui/service/Employees",
dataType: "jsonp"
}
},
schema: {
model: {
id: "EmployeeId",
hasChildren: "HasEmployees"
}
}
});
$("#treeview").kendoTreeView({
dataSource: dataSource,
dataTextField: "FullName"
});
$("#changeNameNow").on("click", function() {
//get the data from datasource using id (if you know the id)
//dataSource.get(2).set("FullName",$("#changeNameTo").val());
//if you don't, try utilize data-uid
dataSource.getByUid($(".k-state-selected").parent().parent().attr("data-uid")).set("FullName", $("#changeNameTo").val());
});
$("#checkDataSource").on("click", function() {
console.log(dataSource.data());
});
</script>
</body>
</html>
相关文章:
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- 我没有'I don’我不理解for在循环中的用途
- 这个旋钮没有更新;我不知道为什么
- 我不知道为什么我的代码是错误的?又有什么错
- Codeacademy Javascript..好的!/输出正确,但codeacademy没有;I don’我不喜欢
- 我不知道我的编码有什么问题.(JavaScript)
- I'我不知道为什么我的代码没有'不起作用
- sqlite查询返回错误-can'我不知道为什么
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- 用Javascript更改Kendo TreeView节点名称-我不'I don’我不知道怎么做
- 我可以'I don’我不知道我在做什么;m缺失,除了一个选项外,代码可以100%工作
- JQuery Quickfix:我不;I don’我不知道怎么称呼它
- 回溯问题-can'I don’我不知道怎么做
- Don'我不知道如何发送带有get请求参数的字符串
- 无法't更新流星中的文档,找到了修复程序,但没有;I don’我不知道怎么用.我该把它放在哪里
- three.js;无法读取属性'位置'of undefined和don'我不知道为什么
- 我的javascript输出与预期输出不匹配.我没有'I don’我不知道我哪里错了
- 我没有'I don’我不知道;It’联系表格有问题
- 引导程序:don'I don’我不知道如何制作时尚的大菜单