我有一個在頁面加載時綁定到datasoure的gridview。數據源連接到各種其他數據庫表,即。 datasourceItem.relatedEntity
使用數據綁定控件從Databound Gridview中的相關實體中的列中獲取總和
gridview中有一列的值取決於所有相關的relatedEntities
中某個字段的總和。
所以dataSourceItem
與relatedEntity
有一對多的關係,我需要總結所有相關的relatedEntities
中的特定列的值。我想這樣做盡可能簡單,我知道這個語法是錯誤的,但是這是什麼樣的我想做的事:
標記:
<asp:TemplateField HeaderText="Sum">
<ItemTemplate>
<asp:Label ID="lblSum" runat="server" Text='<%# Bind("relatedEntity.ColumnName").Sum() %>' />
</ItemTemplate>
</asp:TemplateField>
代碼隱藏(綁定):
myGridview.DataSource = from ds in DataContext.dataSource
where ds.Id == selectId
select ds;
myGridview.DataBind();
我想保持代碼量最小,所以如果這是可能的話,請幫我弄清楚如何。要清楚,我想要工作的代碼行是這樣的:
'<%# Bind("relatedEntity.ColumnName").Sum() %>'
或至少是這樣的效果。我不一定非要用Sum()
的方法......如果有不同的/更好的處理方式,請隨時讓我知道
這似乎並不想爲我工作。 web.config已經添加了程序集,我已經導入了名稱空間,但它不想綁定數據。我得到一個HttpException,說* AnonymousType1b [8]不包含名稱relatedEntityItemType * –
其'relatedEntities'的集合,這樣'relatedEntity.type = relatedEntity' –
我想我看到問題。糾正我,如果我錯了,但是我得到一個匿名類型的事實與我如何databinding gridview?由於我需要做的格式化,我實際上需要查詢查詢的結果,然後將數據綁定到第二個查詢,並在第二個查詢中投射第一個查詢AsEnumerable()。即。 'myGridView.DataSource =從firstQuery.AsEnumerable()中的ds選擇新的{*屬性*};' –