代码如下:

前台:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<style type="text/css">
    table, tr, td, th
    {
        border: 1px solid black;
    }
    table
    {
        border-collapse: collapse;
    }
</style>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Repeater ID="repeater" runat="server">
            <HeaderTemplate>
                <table>
                    <tr>
                        <th>
                            姓名
                        </th>
                        <th>
                            分数
                        </th>
                        <th>
                            分数总计
                        </th>
                        <th>
                            平均分
                        </th>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                        <%#Eval("Name") %>
                    </td>
                    <td>
                        <%#Eval("Score") %>
                    </td>
                    <%#!string.IsNullOrEmpty(Eval("Count").ToString())?"<td rowspan='"+(this.repeater.DataSource as System.Data.DataTable).Rows.Count+"'>"+Eval("Count")+"</td>":"" %>
                    <%#!string.IsNullOrEmpty(Eval("Avg").ToString()) ? "<td rowspan='" + (this.repeater.DataSource as System.Data.DataTable).Rows.Count + "'>" + Eval("Avg") + "</td>" : ""%>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>
    </div>
    </form>
</body>
</html>

后台代码:

public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.repeater.DataSource = GetScore();
            this.DataBind();
        }
        
        /// <summary>
        /// 模拟数据
        /// </summary>
        /// <returns>成绩数据</returns>
        public DataTable GetScore() 
        {
            //模拟数据
            DataTable dt = new DataTable();
            dt.Columns.Add("Name");
            dt.Columns.Add("Score");
            dt.Columns["Name"].DataType = typeof(string);
            dt.Columns["Score"].DataType = typeof(Int32);
            DataRow dr = dt.NewRow();
            dr["Name"] = "张三";
            dr["Score"] = 89;
            dt.Rows.Add(dr);
            DataRow dr1 = dt.NewRow();
            dr1["Name"] = "李四";
            dr1["Score"] = 99;
            dt.Rows.Add(dr1);
            DataRow dr2 = dt.NewRow();
            dr2["Name"] = "王五";
            dr2["Score"] = 82;
            dt.Rows.Add(dr2);
            DataRow dr3 = dt.NewRow();
            dr3["Name"] = "赵六";
            dr3["Score"] = 89;
            dt.Rows.Add(dr3);

            //计算分数总计
            dt.Columns.Add("Count");
            string obj = dt.Compute("SUM(Score)", "").ToString();
            dt.Rows[0]["Count"] = obj;
            //计算分数平均分
            dt.Columns.Add("Avg");
            obj = dt.Compute("AVG(Score)", "").ToString();
            dt.Rows[0]["Avg"] = obj;

            return dt;
        }
    }

posted on 2013-10-22 15:36  千叶景枫  阅读(1209)  评论(0编辑  收藏  举报