0

グリッド内にネストされたグリッドがあり、完全に機能しますが、クライアントは左側の矢印を使用したくなく、子グリッドを表示するためにボタンを追加するよう求めました。

Kendo Web サイトの例は、最初の行を自動的に開く方法を示しています。左側のセレクターと同じ方法で、カスタム コントロールからグリッドを展開する方法が必要です。

カスタム コマンドが機能し、サンプル コードが実行されましたが、現在の行で機能させるために必要な JavaScript について少し助けが必要です。

columns.Command(command => 
            { 
                command.Edit().Text("Edit").UpdateText("Save"); 
                command.Destroy().Text("Del");
                command.Custom("Manage Brands").Click("showBrandsForAgency");

そして、最初の行を開く標準的な例を含む js:

function showBrandsForAgency(e) {
    this.expandRow(this.tbody.find("tr.k-master-row").first());
}

最初の行ではなく、クリックされた行を展開するために必要な js を教えてください。

* 編集 * Atanas Korchev によって提供されたソリューションを変更して、行全体ではなくボタンのみで機能するようにしました。

カスタム関数の代わりに関数 showBrandsForAgency を使用するソリューションを希望しますが、これでうまくいきます。

$(document).ready(function () {

    $("#grid").on("click", "a", function (e) {
        var grid = $("#grid").data("kendoGrid");
        var row = $(this).parent().parent();

        if (row.find(".k-icon").hasClass("k-minus")) {
            grid.collapseRow(row);
        } else {
            grid.expandRow(row);
        }
    });
});
4

2 に答える 2

-1

同じ結果がよりシンプルに、より速く、より効率的に:

$("#grid").on("click", "tr", function () {
    $(this).find("td.k-hierarchy-cell .k-icon").click();
});
于 2015-05-25T12:12:13.563 に答える