超簡単コンセプト!...
ある時点で、編集可能なグリッド (および詳細グリッド) を読み取り専用に設定する必要があります...だから、次のようなことをしたいと思います:
var grid = $("#grid").data("kendoGrid");
grid.options.editable = false;
もちろん、これは単純すぎるため機能しません...
助けてくれてありがとう!
超簡単コンセプト!...
ある時点で、編集可能なグリッド (および詳細グリッド) を読み取り専用に設定する必要があります...だから、次のようなことをしたいと思います:
var grid = $("#grid").data("kendoGrid");
grid.options.editable = false;
もちろん、これは単純すぎるため機能しません...
助けてくれてありがとう!
2 つのグリッドを用意することをお勧めします。1 つは読み取り専用、もう 1 つは読み書き可能ですが、表示されるのは 1 つだけです。どちらも DataSource 定義を共有しているため、常に同期しています。一方から他方に変更したい場合は、可視を非表示にして他方を表示します。
例: まったく同じ定義の 2 つのグリッドを作成しますが、1 つが非表示で 1 つが表示され、1 つが編集可能でもう 1 つが編集可能でないという点だけが異なります。どちらも同じ DataSource を共有しているため、一方のページを変更すると他方が変更され、一方を編集すると他方が更新されるため、実際には完璧に機能します。
何かのようなもの:
1- 可視性の切り替えに使用される CSS 定義:
.ob-hide {
display : none;
}
2- DataSource 定義:
var ds = new kendo.data.DataSource({
transport : {
read : {
url: ...
},
update : {
url: ...
},
create : {
url: ...
},
destroy : {
url: ...
}
},
pageSize: 10,
schema : {
model: {
id : ...,
fields: {
id : { type: '...' },
...
}
}
}
});
次の 2 つのグリッド:
$("#grid-editable").kendoGrid({
editable: "inline",
dataSource : ds,
...
}
$("#grid-not-editable").kendoGrid({
editable: false,
dataSource: ds,
...
});
$("#grid-editable").addClass("ob-hide");
そして最後に、モードを切り替える機能:
function gridEditable() {
$("#grid-editable").removeClass("ob-hide");
$("#grid-not-editable").addClass("ob-hide");
});
function gridNotEditable() {
$("#grid-editable").addClass("ob-hide");
$("#grid-not-editable").removeClass("ob-hide");
});
ここで実行されていることを確認してください: http://jsfiddle.net/OnaBai/bCEJR/2/
disabled="disabled"
必要な要素を追加することで、より良いスタイルに取り組みました。kendoでangular JSを使用すると、グリッドを無効に設定するとユーザーが編集できなくなるため、魅力的に機能しました。試してみてください。角度がなくても機能する可能性があります!