大家好:
    昨天看视频看到一个动态添加table的,自己试了一下怎么也添加不成功!请大家帮我看看为什么会错。 protected System.Web.UI.WebControls.Table tbdt;
    protected void Page_Load(object sender, EventArgs e)
    {
        TableCell tb;
        TableRow tr;        tr = new TableRow();        tb = new TableCell();
        tb.Controls.Add(new LiteralControl("<img src='a.gif'>"));
        tr.Cells.Add(tb);        tb = new TableCell();
        tb.Controls.Add(new LiteralControl("<img src='b.gif'>"));
        tr.Cells.Add(tb);        tb = new TableCell();
        tb.Controls.Add(new LiteralControl("<img src='c.gif'>"));
        tr.Cells.Add(tb);        tbdt.Rows.Add(tr);//无法从webcontrols.TableRow转换成htmlcontrols.HtmlTableRow
    }
为什么会报这个错???我觉得它根本不需要什么转换???谢谢大家

解决方案 »

  1.   

    using System.Web.UI.HtmlControls;protected HtmlTable tbdt;
        protected void Page_Load(object sender, EventArgs e)
        {       HtmlTableRow  tr = new HtmlTableRow();        HtmlTableCell tb = new HtmlTableCell();
            tb.Controls.Add(new LiteralControl("<img src='a.gif'>"));
            tr.Cells.Add(tb);        HtmlTableCell  tb1 = new HtmlTableCell();
            tb1.Controls.Add(new LiteralControl("<img src='b.gif'>"));
            tr.Cells.Add(tb1);        HtmlTableCell tb2 = new HtmlTableCell();
            tb2.Controls.Add(new LiteralControl("<img src='c.gif'>"));
            tr.Cells.Add(tb2);        tbdt.Rows.Add(tr)
        }
      

  2.   

    楼主的Table 是HtmlTalbe应该用服务器控件
    <asp:Table ID="tbdt" runat="server"></asp:Table>
      

  3.   

    明显一个是服务器控件一个HTML控件将HTML TABLE修改为WEB TABLE就行了
      

  4.   


            StringBuilder sbTable = new StringBuilder();
            sbTable.Append("<table><thead>");
            sbTable.Append("<tr><th>");
            sbTable.Append("A");
            sbTable.Append("</th><th>");
            sbTable.Append("B");
            sbTable.Append("</th><th>");
            sbTable.Append("C");
            sbTable.Append("</th></tr>");
            sbTable.Append("</thead><tbody>");
            sbTable.Append("<tr><td>");
            sbTable.Append("1");
            sbTable.Append("</td><td>");
            sbTable.Append("2");
            sbTable.Append("</td><td>");
            sbTable.Append("3");
            sbTable.Append("</td></tr>");
            sbTable.Append("</table>");
            Response.Write(sbTable.ToString());
      

  5.   

    <asp:Table ID="tbdt" runat="server"> </asp:Table>
      

  6.   

    protected System.Web.UI.WebControls.Table tbdt;
    我是在后台定义的,这么声明不就说明是服务器控件吗??
      

  7.   

    前台:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ws1._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Webservices</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
        <asp:Panel ID="pnlContainer" runat="server"></asp:Panel>
        
        </div>
        </form>
    </body>
    </html>
    后台:protected void Page_Load(object sender, EventArgs e)
            {            Table table = new Table();
                TableRow tr = new TableRow();            for (int i = 0; i < 6; i++)
                {
                    TableCell tc = new TableCell();
                    tc.Text = i.ToString();
                    tr.Cells.Add(tc);
                }
                table.Controls.Add(tr);            pnlContainer.Controls.Add(table);
            }
      

  8.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ws1._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Webservices</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div id="div1" runat="server">
       
        </div>
        </form>
    </body>
    </html>
    StringBuilder sbTable = new StringBuilder();
            sbTable.Append("<table><thead>");
            sbTable.Append("<tr><th>");
            sbTable.Append("A");
            sbTable.Append("</th><th>");
            sbTable.Append("B");
            sbTable.Append("</th><th>");
            sbTable.Append("C");
            sbTable.Append("</th></tr>");
            sbTable.Append("</thead><tbody>");
            sbTable.Append("<tr><td>");
            sbTable.Append("1");
            sbTable.Append("</td><td>");
            sbTable.Append("2");
            sbTable.Append("</td><td>");
            sbTable.Append("3");
            sbTable.Append("</td></tr>");
            sbTable.Append("</table>");
       div1.innterHtml = sbTable.tostring();
      

  9.   

     protected void Page_Load(object sender, EventArgs e)
        {
            Table tbdt = new Table();
            TableCell tb;
            TableRow tr;        tr = new TableRow();        tb = new TableCell();
            tb.Controls.Add(new LiteralControl("<img src='a.gif'>"));
            tr.Cells.Add(tb);        tb = new TableCell();
            tb.Controls.Add(new LiteralControl("<img src='b.gif'>"));
            tr.Cells.Add(tb);        tb = new TableCell();
            tb.Controls.Add(new LiteralControl("<img src='c.gif'>"));
            tr.Cells.Add(tb);        tbdt.Rows.Add(tr);
            this.form1.Controls.Add(tbdt);
        }你动态生成的 控件 是不是没有 添加到 form 或 page 中去 上面的代码在我这可以执行。
      

  10.   

    在一楼的基础上改一下就不报错了<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px">
            </asp:Panel>
        
        </div>
        </form>
    </body>
    </html>
    HtmlTable tbdt=new HtmlTable();
          HtmlTableRow  tr = new HtmlTableRow();         HtmlTableCell tb = new HtmlTableCell(); 
            tb.Controls.Add(new LiteralControl(" <img src='a.gif'>")); 
            tr.Cells.Add(tb);         HtmlTableCell  tb1 = new HtmlTableCell(); 
            tb1.Controls.Add(new LiteralControl(" <img src='b.gif'>")); 
            tr.Cells.Add(tb1);         HtmlTableCell tb2 = new HtmlTableCell(); 
            tb2.Controls.Add(new LiteralControl(" <img src='c.gif'>")); 
            tr.Cells.Add(tb2);        tbdt.Rows.Add(tr);
            Panel1.Controls.Add(tbdt);那就是说table需要实例化了
      

  11.   

    谢谢各位,通过大家的代码问题解决了1:table没有实例化
    2:动态生成的控件没有添加到page中答案在16#