【发布时间】:2013-05-25 00:49:10
【问题描述】:
我希望为每个位置添加一行,如下图所示。该行将显示每列的总数。我已经计算了这些值( , , )只需要将它们放置在正确的位置,我似乎无法按照我想要的方式格式化它.
目前看起来是这样的:
我希望它看起来像这样:
我的 ASPX 页面
<form id="form1" runat="server">
<div class="container">
<div class="page-header">
<h1>
Report</h1>
<br />
<div class="row">
<div class="span11">
<%
System.Data.OleDb.OleDbConnection pcn;
System.Data.OleDb.OleDbCommand pcm;
System.Data.OleDb.OleDbDataReader prs;
pcn = new System.Data.OleDb.OleDbConnection("");
pcm = new System.Data.OleDb.OleDbCommand();
pcn.Open();
pcm.Connection = pcn;
var tableSql = @"SELECT * FROM Accounts";
pcm.CommandText = tableSql;
prs = pcm.ExecuteReader();
var rowcount = 0;
var CurrentLocation = "";
while (prs.Read())
{
rowcount++;
%>
<% if (prs["Location"].ToString() != CurrentLocation)
{ %>
<table width="100%" class="table">
<thead>
<tr>
<th>
Name
</th>
<th>
Owes
</th>
<th>
Paid
</th>
<th>
Original Amt
</th>
<th>
Date
</th>
</tr>
</thead>
<h4>
<%= prs["Location"].ToString()%></h4>
<%
CurrentBranch = prs["Loction"].ToString();
} %>
<tr>
<td>
<%= prs["Name"].ToString() %>
</td>
<td>
$<%= prs["Owes"].ToString() %>
</td>
<td>
$<%= prs["Paid"].ToString() %>
</td>
<td>
$<%= prs["OrigAmt"].ToString() %>
</td>
<td>
<%= Convert.ToDateTime(prs["SubmitDate"].ToString()).ToShortDateString() %>
</td>
</tr>
<%
}
prs.Close();
pcn.Close();
%>
</table>
</div>
</div>
</div>
</div>
</form>
【问题讨论】:
-
您在 aspx 页面中嵌入所有代码以执行此操作的任何特殊原因?通常当我看到这个时,这是一个坏主意......
-
同意。我建议将所有的 asp 代码放在 .cs 文件中,并使用诸如 GridView 之类的控件来显示数据。
-
这是一份只有两个人的小报告,这是我知道的唯一方法,它会按位置分开。我不想制作四个不同的网格视图(也许有办法不必这样做)。
-
如果您仍要走这条路,我建议您制作 4 张不同的桌子,而不是一张大桌子。此外,您可以在不同的位置进行 foreach 并以这种方式将其分开。您可以根据 SQL 中的位置获取总计列表。然后,在您写完为某个位置返回的所有行之后,您可以在底部写一个额外的表格行,其中包含总数据。我认为这样做可能比使用网格视图更难。
-
@Tony 感谢您的输入 Tony,我会考虑将其转换为几个不同的网格视图。
标签: c# html-table