【问题标题】:Kendo MVC treeview Passing selected node to gridKendo MVC树视图将选定的节点传递给网格
【发布时间】:2015-01-22 07:35:15
【问题描述】:

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

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

我的问题是我总是得到上一个选择的节点而不是当前选择的节点,那么问题是什么?我该如何解决?

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    在您的 onSelect 方法中,您可以使用类似这样的一些 JavaScript 获取节点。

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

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

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

    【讨论】:

    • 感谢richardb,但是如何将此值传递给网格?
    • 你的意思是把它传递给网格数据源调用吗?只要 getParameter javascript 函数获得正确的节点,GetData 方法就应该接收该值。 BindGrid 方法触发网格数据源刷新,然后获取参数。你应该在那里。缺少什么?
    猜你喜欢
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多