3

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")
        )
)
4

2 に答える 2

3

私は今日これを見つけました、それはグリッド用です、しかし私はそれがデータソースを使用する他のものでうまく働くと仮定するつもりです:

@(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>

剣道ドキュメントでもっと読む...

于 2013-01-30T19:49:40.997 に答える
2

やっと見つけた -- http://docs.kendoui.c​​om /getting-started/using-kendo-with/aspnet-mvc/migration/widgets/treeview

以下に概説するDataSource イベント...

<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>
于 2013-01-29T01:59:16.700 に答える