javascript - 如何用ASP.NET、Javascript实现表格式布局的解决方案

标签 javascript asp.net html

我们需要实现以下表结构(这是一个示例;数据源是动态的)。请注意,该月有中间的总计(总和)值。

如果我们除了计算出的Total之外还有数据源(日期和金额),您有什么建议动态生成这种表格样式的布局吗?

Date     Amount
==========================
1  Nov   300
22 Nov   500
30 Nov   200
Total    1000
5  Dec   100
28 Dec   200
Total    300

谢谢。

最佳答案

您可以使用中继器。请注意,此解决方案只是一个示例,可以通过多种方式进行改进。

<table>
    <tr>
        <th>Date</th>
        <th>Amount</th>
    </tr>
    <asp:Repeater ID="myRepeater" runat="server" OnItemDatabound="myRepeater_Databound">
        <ItemTemplate>
            <tr>
                <td><%# Eval("Date", "{0:dd MMM}") %></td>
                <td><%# Eval("Amount") %></td>
            </tr>
            <tr id="trMonthlyTotal" runat="server" Visible="false">
                <td>Total</td>
                <td><asp:Literal id="ltMontlyTotal" runat="server" /></td>
            </tr>
        </ItemTemplate>
    </asp:Repeater>
</table>

然后,在您的代码隐藏中:

int currentMonth = 0;
int monthlyTotal = 0;

protected void Page_Load(object sender, EventArgs e)
{
    DataTable dtDataSource = GetData();
    myRepeater.DataSource = dtDataSource;
    myRepeater.DataBind();
}

protected void myRepeater_Databound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        DataView dv = e.Item.DataItem as DataView;
        DateTime currentDate = Convert.ToDateTime(dv["Date"]);

        if (currentDate.Month != currentMonth && currentMonth != 0)
        {
            HtmlTable trMonthlyTotal = e.Item.FindControl("trMonthlyTotal") as HtmlTableRow;
            Literal ltMonthlyTotal = e.Item.FindControl("ltMonthlyTotal") as Literal;

            trMonthlyTotal.Visible = true;
            ltMontlyTotal = Convert.ToString(monthlyTotal);

            currentMonth = currentDate.Month;
            monthlyTotal = 0; 
        }
        else
        {
            monthlyTotal += Convert.ToInt32(dv["Amount"]);
            if (currentMonth == 0) currentMonth = currentDate.Month;
        }
    } 
}

关于javascript - 如何用ASP.NET、Javascript实现表格式布局的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4275211/

相关文章:

javascript - 根据字符串长度使用纯 JavaScript 调整字体大小

javascript - Amazon Connet 的 getCurrentMetricData 不是函数

javascript - JQuery进度圈+淡入淡出页面?

javascript - 如何限制 vis.js 网络的缩放?

javascript - 添加到 dom 的行未选择所有复选框列

html - HTML 中的 if 语句

c# - 用于包装 JsonResult 操作响应的 .Net 过滤器

c# - 将数据表写入 excel 模板并将背景色添加到 excel 中的一行

c# - Asp.net 静态对象行为

html - 如何将样式应用于 'title' 标签的 'td' 属性