11-25-2013, 06:25 PM,
|
|||||
|
|||||
セルが表示されているレコードが正しく取得できない
あるセルに入力された金額の消費税額を、同じレコードの消費税費カラムのセルに表示したいです。
下記のコードでは、常に、「最初にフォーカスを入れたセルのレコード」の消費税フィールドに 値が設定されてしまいます。 なぜでしょうか。 Code: {define-class public CustomCell {inherits StandardStringCell } |
|||||
11-25-2013, 06:34 PM,
(This post was last modified: 11-25-2013, 06:41 PM by umemura.)
|
|||||
|
|||||
RE: セルが表示されているレコードが正しく取得できない
create-editor メソッドでは、そのカラムで利用するテキストフィールドを生成しますが、
1セルにつき1テキストフィールドではなく、 1カラムにつき、1テキストフィールドが生成されているようで、 そのため、 self.record の値が、 「最初にテキストフィールドが生成されたセルのレコード」なってしまっているようでした。 オープンコントロールのソースを参考にして、get-grid-cell を利用することで、 正しく、編集したセルのレコードを取得できるようになりました。 Code: {define-class public CustomCell {inherits StandardStringCell } |
|||||
11-25-2013, 06:40 PM,
(This post was last modified: 11-25-2013, 06:41 PM by umemura.)
|
|||||
|
|||||
RE: セルが表示されているレコードが正しく取得できない
先のソースでは、セルに値を入力後、returnキー等を押さずにフォーカスアウトすると、 セルの中の値が正しく反映されずに、消えてしまう、という問題がありました。 デバッグで create-editor で生成したTextField のvalueを確認したところ、 同じくcreate-editor内で追加した ValueFinished のイベントハンドラの前後で、 テキストフィールドの値が異なっていました。 オープンコントロールのソースを見る限り、 SRGTextField のコンストラクタ内でもValueFinished のイベントが追加されており、 その中で、変更前の値が、セルのattempt-update に投げられているようでした。 セルの値が変更されたら何かを行う、という処理は、 create-editor で生成したコントロールの値変更イベントで設定するのではなく、 StandardStringCell.attempt-update をオーバーライドしたほうが良いのかもしれません。 下記のソースであれば、セルの値を変更した直後にフォーカスアウトしても、 値が残るようなことはありませんでした。 Code: {define-class public CustomCell {inherits StandardStringCell } |
|||||
12-05-2013, 03:49 PM,
(This post was last modified: 11-27-2015, 02:51 PM by shimonshoo.)
|
|||||
|
|||||
RE: セルが表示されているレコードが正しく取得できない
I have been meaning to write something like this on my website and you have given me an idea. Your post will be rather good.
|
|||||
« Next Oldest | Next Newest »
|
Users browsing this thread:
1 Guest(s)
1 Guest(s)