【发布时间】:2016-08-04 15:38:18
【问题描述】:
好的,所以这可能是一个非常简单的问题,我很难想出一个解决方案。
我有一个简单的 ASP.Net Web 应用程序,它根据用户选择的属性向 SQL Server 数据库提交和检索资本项目。
在这个项目中,我在 SQL Server 中构建了一些存储过程,用于处理从应用程序到数据库的数据传输。我在 ASP.NET 项目中使用 LINQ 来连接存储过程。
特别是,我有一个 ASP.NET Repeater 设置,它是所选公司所有提交的资本项目的填充列表。我的代码比较简单:
中继器:
<asp:Repeater ID="rptProjects" runat="server" OnItemCommand="rptProjects_ItemCommand">
<HeaderTemplate>
<table style="table-layout:auto; width:100%">
<tr>
<td style="width:2%"><b>Item #</b></td>
<td style="width:2%"><b>Priority</b> </td>
<td style="width:10%"><b>Project Name</b></td>
<td style="width:20%"><b>Description</b></td>
<td style="width:4%"><b>Reason</b></td>
<td style="width:3%"><b>Category</b></td>
<td style="width:2%"><b>Asset Age</b></td>
<td style="width:3%"><b>Est. Useful Life</b></td>
<td style="width:2%"><b>Qty</b></td>
<td style="width:2%"><b>Unit Type</b></td>
<td style="width:3%"><b>Unit Cost</b></td>
<td style="width:3%"><b>Total Budget</b></td>
<td style="width:20%"><b>Owner Comments</b></td>
<td style="width:3%"> </td>
<td style="width:3%"> </td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table style="width:100%">
<tr>
<td style="width:2%">R#</td>
<td style="width:2%"><%#Eval("Priority") %> </td>
<td style="width:10%"><%#Eval("ProjectName") %></td>
<td style="width:20%"><%#Eval("Description") %> </td>
<td style="width:4%"><%#Eval("Reason") %> </td>
<td style="width:3%"><%#Eval("Category") %></td>
<td style="width:2%"><%#Eval("AssetAge") %> </td>
<td style="width:3%"><%#Eval("AssetUsefulLife") %></td>
<td style="width:2%"><%#Eval("Quantity") %> </td>
<td style="width:2%"><%#Eval("UnitType") %></td>
<td style="width:3%"><%#Eval("UnitCost", "{0:C0}") %></td>
<td style="width:3%"><%#Eval("TotalAmount", "{0:C0}") %></td>
<td style="width:20%"><%#Eval("OwnerNotes") %></td>
<td style="width:3%">
<asp:Button ID="btnDelete" runat="server" Text="X"
ToolTip="Delete the selected project."
CommandName="Delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ItemCode") %>'
CausesValidation="False" />
</td>
<td style="width:3%">
<asp:Button ID="btnUpdate" runat="server" Text="Edit"
ToolTip="Update the selected project."
CommandName="Update" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ItemCode") %>'
CausesValidation="False" />
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
在 C# 中使用 dataContext 非常简单地填充中继器,该数据上下文执行一个存储过程,该过程返回该属性的所有项目。
C# 代码:
//Load any projects submitted for the property
using(var dataContext = new CAPEXDataConnDataContext())
{
rptProjects.DataSource = dataContext.web_CAPEXProjectsByCompany(Session["PropertyNumber"].ToString());
rptProjects.DataBind();
}
这会产生一个漂亮、简单的中继器:
我的问题是:在当前代码的上下文中,我怎样才能轻松地将总预算列汇总到转发器中的FooterTemplate?
我不确定这是否必要,但我正在构建 .NET 4.5 框架。
【问题讨论】:
标签: c# asp.net sql-server linq