Treeview と同じページに Kendo Gridview があります。Gridview には、現在のユーザーに関連付けられているクライアントの行が含まれています。Gridview のクライアント行の 1 つが選択されると、Treeview をトリガーして DataSource を再度読み取ります (selectedClient は、Gridview の行が選択されたときに設定される js 変数です)。
$("#folderTreeView").data("kendoTreeView").dataSource.read({ userId: _selectedClient })
TreeView の再バインドは完全に機能します。問題は、新しい TreeView がネストされたフォルダーを含むフォルダー構造を持っている場合です。「展開」アイコンをクリックすると、アイテムのIDのみが渡されますが、GridViewから現在選択されているクライアントも渡す必要があります(_selectedClientに格納されています)。
したがって、追加のパラメーター (この場合は userId/_selectedClient) を「展開」イベントまたは別の方法でサーバーに渡される「何でも」に追加する方法はありますか?
コントローラ
[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")
)
)