小弟想实现如下样式:
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="border: 1px solid #333333;
    background: #eee; color: #000000; padding: 5px;">
    <tr>
        <td>
            <table width="100%" border="0" cellspacing="0" cellpadding="0" style="border: 1px solid #333333;
                background: #eee; color: #000000; padding: 5px;">
                <tr>
                    <td>
                        <table width="100%" border="0" cellspacing="0" cellpadding="0" style="border: 1px solid #333333;
                            background: #eee; color: #000000; padding: 5px;">
                            <tr>
                                <td>
                                    <span style="font-size: 12px; color: #1f3a87">test1:</span><br>
                                    111</td>
                            </tr>
                        </table>
                        <span style="font-size: 12px; color: #1f3a87">test2:</span><br>
                        2222</td>
                </tr>
            </table>
            <span style="font-size: 12px; color: #1f3a87">test3:</span><br>
            33333
            </td>
    </tr>
</table>
其中test1 ,2 ,3 都是从数据库中循环读取,请问该如何实现?

解决方案 »

  1.   

    可以放在literal,在服务端代码循环输出.
      

  2.   

    循环输出问题是如何递归的输出
    因为我所有的table 都是嵌套的
      

  3.   

    see it like this:<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <table runat="server" id="table1"></table>
        </form>
    </body>
    </html> protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable dt = GetTable();
                RenderTable(this.table1, dt, "");
            }
        }    private void RenderTable(HtmlTable ht, DataTable dt,string pname)
        {
            DataRow[] drs = dt.Select("pname='"+pname+"'");        ht.Width = "100%";
            ht.Border = 0;
            ht.CellPadding = 0;
            ht.CellSpacing = 0;
            ht.Style.Add("border", " 1px   solid   #333333");
            ht.Style.Add("background", "#eee");
            ht.Style.Add("color", "#000000");
            ht.Style.Add("padding", "5px");        foreach (DataRow dr in drs)
            {
                HtmlTableRow htr = new HtmlTableRow();
                HtmlTableCell htc = new HtmlTableCell();            HtmlTable htin = new HtmlTable();
                RenderTable(htin, dt, dr["value"].ToString());            Literal li = new Literal();
                li.Text = "<span style='font-size: 12px; color: #1f3a87'>"+dr["name"]+":</span>"+"<br>" + dr["value"].ToString();            htc.Controls.Add(htin);
                htc.Controls.Add(li);            htr.Controls.Add(htc);
                ht.Controls.Add(htr);
            }
        }    private DataTable GetTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("name");
            dt.Columns.Add("value");
            dt.Columns.Add("pname");        DataRow dr = dt.NewRow();
            dr["name"] = "test3";
            dr["value"] = "3333";
            dr["pname"] = "";
            dt.Rows.Add(dr);        dr = dt.NewRow();
            dr["name"] = "test2";
            dr["value"] = "2222";
            dr["pname"] = "3333";
            dt.Rows.Add(dr);        dr = dt.NewRow();
            dr["name"] = "test1";
            dr["value"] = "1111";
            dr["pname"] = "2222";
            dt.Rows.Add(dr);        return dt;
        }