我是剑道新手,我只是想将树视图的选定节点传递给网格,这是我的代码:
<div>
@(
Html.Kendo().TreeView()
.Name("treeview")
.BindTo((IEnumerable<TreeViewItemModel>)ViewBag.TreeData)
.Events(events => events
.Select("onSelect")).ExpandAll(true)
)
</div>
@(Html.Kendo().Grid<DocunetViewer.Models.MyModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.ID);
columns.Bound(c => c.Name);
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Read(read => read.Action("GetData", "Home").Data("getParameter")))
这是脚本:
<script>
function onSelect(e) {
BindGrid();
}
function BindGrid() {
$("#grid").data("kendoGrid").dataSource.read();
$("#grid").data("kendoGrid").refresh();
}
function getParameter() {
var treeview = $("#treeview").data("kendoTreeView");
var selectedNode = treeview.select();
var id = -1;
if (selectedNode.length != 0) {
var item = treeview.dataItem(selectedNode);
id = item.id;
}
return {
myId: id
};
}
我的问题是我总是让前面选择的节点不是当前选中的节点,那么问题是什么?我该如何解决呢?
提前致谢。
答案 0 :(得分:0)
在你的onSelect方法中,你可以使用这样的JavaScript获取节点。
var node = ($(e.node));
这里我得到了节点的id属性(你的节点可能有不同的东西)。
var id = ($(e.node).data("id"));