1

EditorGridPanelがあり、同じ行の他の列値に応じてセル値を有効/無効にしたいのですが、Extjs3を使用しています。Googleで解決策を見つけようとしたところ、RowEditingプラグインを使用できることがわかりました。このプラグインを使用したくないので、これを行う別の方法はありますか?

そして、[編集]ボタンをクリックしたときにこれを有効または無効にしたいので、「beforeedit」イベントでこれを実行できます。ここで、特定のセルオブジェクトにアクセスする方法と、そのセルオブジェクトを有効または無効にする方法について問題が発生しています。グリッドの列全体を有効化-無効化する方法がありますが、その特定のセルオブジェクトを返し、このセルオブジェクトを有効化-無効化する方法はありますか?

これを行う方法があることを誰かが知っていますか、私に知らせてください。ありがとう。

4

2 に答える 2

0

私があなたの意図を正しく理解しているなら、あなたはここを見る必要があります:http: //docs.sencha.com/ext-js/3-4/# !/api/Ext.grid.EditorGridPanel-event-beforeedit

そして、私が理解している限り、これがあなたが探していたメソッドです:http: //docs.sencha.com/ext-js/3-4/# !/api/Ext.grid.GridView-method-getCell

これら2つを組み合わせると、EditorGridPanelの「beforeedit」イベントのリスナーと同様の機能が必要になります。

onBeforeEdit : function(e) {
    var htmlCell = e.grid.getView().getCell(e.row, e.cell);
    Ext.fly(htmlCell).addClass('disabled');
}
于 2012-10-03T16:14:38.100 に答える
0

更新しました:

以前に「beforeedit」イベントを検討したように、行に対しては起動しますが、クリックしたセルごとに起動します。したがって、最初にフィールド名を「var fldname=e.field;」として取得します。次に、一致したフィールドに対してfalseを返し、例では無効にします。var fldname = e.field;

onBeforeEdit : function(e) {
var fldname= e.field;
if(fldname == "FirstName" || fldname = "LastName"){
return false;
}

したがって、グリッドの「FirstName」列と「LastName」列を無効にします。

于 2012-10-04T12:17:27.943 に答える