DataTable ( ) からのデータを Telerik RadGrid に入力していますSystem.Data.DataTable
。他の人のアプリケーションをサポートしているため、他のデータ ソースや表示コントロールを使用できません。
私のグリッドには 3 つの列があります。作成されたウィジェット (列 A)、障害のあるウィジェット (列 B)、および障害の割合 (列 C) であるとしましょう。データベース クエリはこれらを提供し、C = B / A の計算を行います。
GridFooterItem
グリッドの下部に合計行 ( Telerik ) があります。列 A と B では、Telerik がこれらの列の合計を計算してくれます。列 C だけから列 C の「合計」の正しい値を計算することはできません。(B の合計) / (A の合計) を入力する必要があります。
DataBound
RadGridのイベントを処理し、フッターのセルに手動で入力することで、これを実現できました。(イベントで をキャッチし、GridFooterItem
Aと B の合計を自動的に計算した後ItemCreated
、イベントに値を入れる必要がDataBound
ありました。) これはかなりハックな感じがします。もっと良い方法があるのではないでしょうか...?
とにかく、重要なビットはこれです:
私のグリッドはグループに分割されているため、GridGroupFooterItem
s の列 C にも入力する必要があります。この場合、ハッキーなテクニックを使用できません: で必要なフッター セルを見つけてmyGridFooterItem["WidgetsProduced"]
いますが、グループ フッター セルを取得できませんmyGridGroupFooterItem["WidgetsProduced"]
。辞書ではありません。
を使用してみましmyGridGroupFooterItem.Cells[]
たが、これTableCellCollection
には予想よりも多くのセルが含まれているため、整数インデックスでアクセスするのは少し面倒です (特に、これはユーザー定義のレポートであるため、列は任意の順序である可能性があります)。
では、これらのセルに計算を入力するにはどうすればよいでしょうか?