2013-02-21 79 views
0

我有一个表在我的aspx页面:如何在代码后面设置html表格标题? ASP.NET

<table id="tbl" runat="server"> 
</table> 

我需要设置在代码中设置表格标题后面,所以它呈现如下:

<table id="tbl" runat="server"> 
    <caption>Monthly savings</caption> 
</table> 

任何帮助将不胜感激。

回答

1

从布拉德·M中的前一个反应几乎是正确的,你必须添加中用runat =“server”属性,ID属性并将其设置为您认为合适的某个值,然后在服务器端代码:

一个重要的提醒想法,你所需要的表元素之前放置标题,里面是不可能

idYouGave.InnerText = "Monthly savings"; 

既然你不能直接使用里面的,做这样的事情来实现你想要的:

<tr> 
    <th colspan="numOfCols"><caption>...</caption></th> 
</tr> 
+0

与其他帖子相同的评论...此解决方案无法正常工作。代码不能编译。 – malkassem 2013-02-21 16:42:12

+0

您必须使用您在标题上设置的标识: ....只有在设置此标记后,才可以在后面的代码中使用该标识。有时,designer.cs文件不会更新,请尝试从标记更改为设计视图,然后切换回来。 – 2013-02-21 16:46:08

+0

我确实使用了id,但是当我添加行代码(使用正确的id)时它不会编译。 – malkassem 2013-02-21 16:48:20

1

只需将runat =“server”属性添加到您的caption元素,并为其添加一个ID即可。然后在后面的代码中将其称为caption.InnerText =“每月储蓄”;

+0

刚刚尝试过,并没有奏效。我得到一个编译错误,说当前上下文中不存在'caption'。 – malkassem 2013-02-21 16:40:48

1

这是不可能的。控制HtmlTable可以包含<tr>并且只有他们,其他所有内容都将被删除。以下是完整说明from MSDN

不支持复杂表格模型。您无法使用嵌套的<caption>, <col>, <colgroup>, <tbody>, <thead>, or <tfoot>元素控制HtmlTable 控件。这些元素在没有警告的情况下被删除,并且 不会出现在输出HTML中。如果 试图以编程方式将这些表模型元素添加到HtmlTable控件的 Control.Controls集合,则会引发异常。

您的选项要么切换到asp:Table控制,要么切换回普通标记。

+0

至少在不考虑ASP.NET从呈现的角度去除元素的情况下,它就在那里:http://jsfiddle.net/tnBdr/ – 2013-02-21 16:41:47

+0

请您详细说明“切换回普通标记”的含义, ? – malkassem 2013-02-21 16:44:21

+0

@RicardoRodrigues,当然它可以在纯HTML中。不幸的是,我们不得不考虑ASP.NET渲染,因为除了''外,所有的标签和控件都从'HtmlTable'中移除。 – Andrei 2013-02-21 16:44:32

相关问题