如何在C#中获取表的innerHTML

时间:2011-07-22 11:57:24

标签: c# asp.net compiler-errors

 HtmlTable baseCalendar = new HtmlTable();
 HtmlTableRow calendarRow=new HtmlTableRow();
 HtmlTableCell calendarCell = new HtmlTableCell();

 for(int i=0;i<6;i++){
       calendarCell = new HtmlTableCell();

       calendarCell.Controls.Add(new LiteralControl(i.ToString()));
       calendarCell.Style.Add("color", "red");
       calendarRow.Cells.Add(calendarCell);

 }



 string resutlt=baseCalendar.innerHtml.Tostring();

此行说错误:HtmlTable'不支持InnerHtml属性?????

4 个答案:

答案 0 :(得分:6)

我希望你想要你创建的表格的HTML代码是innerHTML无法实现的那些在div的情况下是有效的,在这里你应该在这些行上使用RenderControl

StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
baseCalendar.RenderControl(htw)

答案 1 :(得分:1)

来自:http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmltable.innerhtml%28VS.80%29.aspx

不要读取或为此属性赋值。否则,抛出System.NotSupportedException异常。此属性继承自HtmlContainerControl类,不适用于HtmlTable类。

答案 2 :(得分:1)

在这里你必须使用手动编写表而不是使用HtmlTable

 string str = "<table>";
                for (int i = 0; i < 6; i++)
                {
                    str += "<tr><td style='color:red'>" + i.ToString() + "</td></tr>";
                }
                str += "</table>";
                mainDiv.InnerHtml = str;

在ASPX页面

<!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 runat="server" id="mainDiv">
    </div>
    </form>
</body>
</html>

答案 3 :(得分:-1)

HtmlTable确实具有InnerHtml属性:http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmltable.aspx

你错过了一个上限:

string resutlt=baseCalendar.innerHtml.Tostring(); // note innerHtml -> InnerHtml

但是,即使它会编译,你也必须注意:

  

注意

     

不要读取或为此属性赋值。   否则,抛出System.NotSupportedException异常。这个   property继承自HtmlContainerControl类,而不是   适用于HtmlTable类。