【问题标题】:How to add HtmlTable to HtmlTableRow?如何将 HtmlTable 添加到 HtmlTableRow?
【发布时间】:2013-06-08 06:13:24
【问题描述】:

我有一个HtmlTable(父级)并想将另一个HtmlTable 嵌套到父级的HtmlTableRow 中。

我试过这段代码:

HtmlTable parent=new HtmlTable();
HtmlTableRow row = new HtmlTableRow();
HtmlTable child = new HtmlTable();
HtmlTableRow row2 = new HtmlTableRow();
row2.Cells.Add(CreateTableCell("cell1"));
row2.Cells.Add(CreateTableCell("cell2"));
child.Rows.Add(row2);
row.InnerHtml=child.InnerHtml;
parent.Rows.Add(row);

但它给了我这个错误:

HtmlTable 不支持 InnerHtml 属性。

发生此错误是因为此属性继承自 HtmlContainerControl 类,不适用于 HtmlTable

这个方法有替代品吗?

【问题讨论】:

  • @SonerGönül 我知道。 VS 不显示任何语法错误,但在运行时会发生错误。
  • @SonerGönül 请参阅msdn.microsoft.com/en-us/library/…中的警告部分
  • 将表格添加到单元格中,将单元格添加到行中
  • 将表格放在 tr 中是不合法的。 tr 可以包含 td 或 th。在 tr 中放一张桌子是什么意思?

标签: c# asp.net nested html-table


【解决方案1】:

您可以放入 TableRow 的唯一对象是 TableCells 和 TableHeaderCells。任何其他内容(如另一个表格)必须首先进入其中一个。这和html的tr元素一模一样,只能包含td或th元素。

【讨论】:

    【解决方案2】:

    你可以尝试拿一个div,一旦你创建了Htmltable,将Html Table设置为div的内容。

    例如

     div.innerHtml = htmlTable;
    

    希望有所帮助

    【讨论】:

    • 这是不可能的,因为HtmlTable 无法转换为String
    【解决方案3】:

    来自MSDN;

    不要从这个属性中读取或赋值。否则,一个 抛出 System.NotSupportedException 异常。该物业是 继承自 HtmlContainerControl 类,不适用于 HtmlTable 类。

    这样试试;

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

    【讨论】:

    • 这不起作用;因为你没有填写row!如何用child 填写row
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    相关资源
    最近更新 更多