asp.net - Using databound controls to obtain sum from column in related entity in Databound Gridview -
i have gridview bound datasoure on page load. datasource connected various other database tables, ie. datasourceitem.relatedentity
there column in gridview value dependent upon sum of field in related relatedentities.
so datasourceitem has 1 many relationship relatedentity, , need sum value specific column in related relatedentities. want possible, , know syntax wrong, kind of wanted do:
markup:
<asp:templatefield headertext="sum"> <itemtemplate> <asp:label id="lblsum" runat="server" text='<%# bind("relatedentity.columnname").sum() %>' /> </itemtemplate> </asp:templatefield> code-behind (databinding):
mygridview.datasource = ds in datacontext.datasource ds.id == selectid select ds; mygridview.databind(); i want keep amount of code minimum, if @ possible, please me figure out how. clear, line of code want make work this:
'<%# bind("relatedentity.columnname").sum() %>' or @ least effect. don't have use sum() method... if there different/better way of handling this, feel free let me know
first need use eval instead of bind. next, need cast evaluated expression entitycollection type
<asp:label id="lblsum" runat="server" text='<%# ((system.data.objects.dataclasses.entitycollection<relatedentityitemtype>)eval("relatedentity")).sum(i=>i.columnname) %>'></asp:label> also need proper imports <%@ import namespace="yourentitiesnamespace" %> , system.data.entity
edit: if page doesn't compile, needed in web.config
<compilation targetframework="4.0"> <assemblies> <add assembly="system.data.entity, version=4.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089"/> </assemblies> </compilation> also can rid off full name of type using import directive
<%@ import namespace="..entities.." %> <%@ import namespace="system.data.objects.dataclasses" %>
Comments
Post a Comment