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