データベースで 3 つのテーブルを使用しています。最初のテーブルには「Accounts」というラベルが付けられ、2 番目の「AccountItems」と 1 対多の関係があります。AccountItems テーブルにはサイズ列があります。3 番目のテーブルは、この質問に少し関係がありますが、多くのアカウントを持つ「顧客」です。
Account テーブルにバインドされた RadGrid を作成しています。次のようになります。
Customer | Location | Account# | Total Size
___________________________________________
アイテム テンプレートでナビゲーション プロパティが機能したため、顧客と同様に、場所とアカウント番号は簡単です。
ただし、私の問題はサイズ列です。各 AccountItem の Size を合計する必要があります。たとえば、それぞれのサイズが「50」の AccountItem が 4 つある場合、合計は 200 になります。Customer に対して行ったように、Eval() で子関係を単純にナビゲートできるようには見えません。列コードでこれを行うことは可能ですか、または OnItemCreated のサーバー側イベント ハンドラーを行う必要がありますか?
編集
私は一時的な修正のためにそれを理解しました。
<ItemTemplate>
<asp:Label ID="lblSizeSum" runat="server"Text='<%# CalculateSizeTotal((MS_Accounts)Container.DataItem)%>'>
<ItemTemplate>
そして、コードビハインド:
Protected string CalculateSizeTotal(MS_Accounts dataItem)
{
return dataItem.MS_AccountLoads.Sum(s => s.Size).ToString();
}
これについて私が気に入らない唯一のことは、キャストのために ORM に直接アクセスすることによる MVC の明らかな違反です。