1

マスターTcxGridLevelと2つの子TcxGridLevels(すべてTcxGridDBTableViewを使用)で構成されるTcxGridがあります。マスターレベルのレコード値の値に応じて、子レベルの1つを非表示にします。どうすればこれを行うことができますか?

4

1 に答える 1

3

必要なものを説明するDevExpressへのリンクは次のとおりです。

https://www.devexpress.com/Support/Center/Question/Details/Q96738

しかし、これには私の意見ではいくつかの欠点があります。まず、データセットが大きいと非常に遅くなります。次に、マスターレベルが頻繁に変更され、グリッドを再描画する必要がある場合、「ちらつき」が発生します。nmasterが正しい条件を持っているときに詳細が「空」になるように、詳細データセットにフィルターを設定することは可能かもしれません。TcxGridには、空の詳細タブを自動的に非表示にするプロパティがあります。

やや文脈から外れていますが、リンクが再び停止した場合:

1)Level3 Viewが期待どおりに変更されなかったため、Level3OnGetGridViewをトリガーするにはどうすればよいですか。

OnGetGridViewイベントは、詳細が最初に展開されたときに1回だけ発生します。イベントハンドラーが実行された後、指定されたGridViewのクローンが作成されてキャッシュされるため、次回同じマスターレコードを展開するときにイベントが発生しません。後でイベントを発生させる必要がある場合は、マスターDataControllerのClearDetailsメソッドまたはClearDetailLinkObjectメソッドを呼び出すことにより、すべての詳細クローンをクリアできます。

この情報は、ExpressQuantumGridのドキュメントの「TcxGridLevel.OnGetGridView」トピックにあります。

2)表示されているすべてのグリッドビューのレベル2とレベル3のキャプションも変更していますが、変更は自動的には行われません。キャプションを変更するには、詳細ビューを閉じてから再度開く必要がある場合があります。

間違えない場合は、OnGetGridViewイベントハンドラーでレベルのキャプションを変更します。その場合、対応する要素のペイントが完了していないため、新しいキャプションはすぐには適用されません。回避策として、カスタムメッセージを投稿することで「遅延」操作を実行できます。このアプローチの実際を説明するために、サンプルプロジェクトを添付しました。うまくいけば、それはあなたのニーズに応え、それを適応させることは問題ではないでしょう。

于 2011-06-01T07:09:07.613 に答える