2016-09-22 18 views
0

私は3列と5行のグリッドを持っています。ExtJsセル編集

グリッドにCellEditingプラグインを添付しました。 3列目では、数値フィールドエディターを定義しました。

これで各行の第3列に数値フィールドエディタが追加されました。

しかし、データ/列のメタデータに何らかの条件があるため、2行目と4行目の数値フィールドエディタを無効にしたいとします。

エディタが列レベルで添付されているため、特定の行のセルエディタを無効にすることはできません。

この種のシナリオを処理する方法はExtJSにありますか?

エヴァンのコメントで述べたように、私はExtJSの5

+2

'beforeedit'イベントを使用し、編集可能でないセルに対してはfalseを返します。 –

+0

これを行う方法は他にありますか?私はbeforeeditイベントを使いたくない。基本的に私はエディタがセルに接続されているときにこれを処理したい。 –

+1

いいえ。エディタが列に接続され再利用されているためです。 'beforeedit'イベントは、エディタがセルにアタッチされている場所です。また、なぜあなたは 'beforeedit'を使用したくないと言っているのだろうと思っています。どういうことでしょう? –

答えて

1

を使用しています、あなたはそれが始まる前に編集を拒否するbeforeeditイベントを使用する必要があります。

ExtJSは、すべてのセルにエディタを添付しません。代わりに、ユーザが編集をトリガすると(グリッドセルをシングルクリックまたはダブルクリックするなど)、CellEditingプラグインが呼び出されます。 beforeeditイベントが拒否されていない場合は、そのフィールドに編集フィールドを追加します。編集が終了すると、編集フィールドが切り離されます。

編集可能でないフィールドのスタイルを変更する場合は、編集可能でないことを示すために、列にrendererを割り当てることができます。これにより、CSSスタイルを含むセル固有の属性を指定できます。

関連する問題