在剑道Treeview的Expand事件期间传递其他参数

时间:2013-01-29 01:01:11

标签: asp.net-mvc razor kendo-ui kendo-treeview

我在Treeview的同一页面上有一个Kendo Gridview。 Gridview包含与当前用户关联的客户端行。当选择Gridview中的一个客户端行时,我会触发Treeview再次读取DataSource(当选择Gridview中的行时,selectedClient是一个js变量集):

$("#folderTreeView").data("kendoTreeView").dataSource.read({ userId: _selectedClient })

TreeView的重新绑定非常有效。问题是当新的TreeView具有带嵌套文件夹的文件夹结构时。单击“展开”图标时,只传递项目的ID,但我也需要从GridView传递当前选定的客户端(存储在_selectedClient中)。

那么,有没有办法在“展开”事件或其他方式中将其他参数(在这种情况下为userId / _selectedClient)添加到服务器中的“what”?

控制器

[HttpPost]
public virtual JsonResult List(int? userId, int? id)
{
 ....
}

剃刀

@(Html.Kendo().TreeView()
    .Name("folderTreeView")
    .DataTextField("Name")
    .DataSource(dataSource => dataSource
        .Read(read => read.Action("List", "Folder", new { area = "Portal"           }).Type(HttpVerbs.Post)
        )
    )
    .Events(events => events
        .Expand("onSelect")
        )
)

2 个答案:

答案 0 :(得分:3)

我今天发现了这个,它适用于网格,但我认为它可以与使用DataSource的任何其他工作正常:

@(Html.Kendo().Grid<MvcApplication1.Models.Product>()
.Name("Grid")
.DataSource(dataSource => dataSource
    .Ajax()
    .Read(read => read.Action("Products_Read", "Home")
        .Data("additionalData") // the name of the JavaScript function which will return the additional data
    )
)
.Pageable()
)
<script>
function additionalData() {
    return {
        firstName: "John",
        lastName: "Doe"
    };
}
</script>

The Kendo Docs ...

上阅读更多内容

答案 1 :(得分:2)

我终于找到了 - http://docs.kendoui.com/getting-started/using-kendo-with/aspnet-mvc/migration/widgets/treeview

数据源事件,如下所述......

<script>
  function addData(data) {
    return { userId: _selectedClient };
  }
</script>

<div class="demo-section">
  @(Html.Kendo().TreeView()
        .Name("folderTreeView")
        .DataTextField("Name")
        .DataSource(dataSource => dataSource
            .Read(read => read
              .Action("List", "Folder", new { area = "Portal" })
              .Type(HttpVerbs.Post)
              .Data("addData")
            )
        )
    )
</div>