Kendo MVC treeview将选定节点传递给网格

时间:2015-01-22 07:35:16

标签: asp.net-mvc-4 treeview kendo-asp.net-mvc kendo-treeview

我是剑道新手,我只是想将树视图的选定节点传递给网格,这是我的代码:

    <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            
    };
}

我的问题是我总是让前面选择的节点不是当前选中的节点,那么问题是什么?我该如何解决呢?

提前致谢。

1 个答案:

答案 0 :(得分:0)

在你的onSelect方法中,你可以使用这样的JavaScript获取节点。

var node = ($(e.node));

这里我得到了节点的id属性(你的节点可能有不同的东西)。

var id = ($(e.node).data("id"));