我有这样的事情:
<table id="tableId" runat="server">
<thead>
<tr>
<th>Example thead1</th>
<th>Example thead2</th>
</tr>
</thead>
<tbody id="tb0">
<tr>
<td>Example 1</td>
<td>Something</td>
</tr>
</tbody>
<tbody id="tb1">
<tr>
<td>Example 2</td>
<td>Something</td></tr>
</tbody>
<tbody id="tb2">
<tr>
<td>Example 3</td>
<td>Something</td>
</tr>
</tbody>
</table>
我使用多个&#34; tbody&#34;使用不同的ID,所以我可以删除它或随时创建它。
我想要做的是从多个&#34; tbody&#34;从表格&#34; tableId&#34;。
在C#中,如果我使用命令&#34; tableId.Rows [0] .Cells [0] .InnerHtml &#34;,我得到结果:&#34; < strong>示例thead1 &#34;。
但如果我使用&#34; tableId.Rows [3] .Cells [0] .InnerHtml &#34;,我就无法获得&#34;示例3& #34;如表行中所示,而不是它我得到一个错误,表示该行不存在或者它没有索引。
答案 0 :(得分:0)
制作tbody元素服务器控件。
<tbody id="tb2" runat="server">
<tr>
<td>Example 3</td>
<td>Something</td>
</tr>
</tbody>
然后根据需要切换可见性:
tb2.Visible = true / false;
根据评论:
设计师可能不会创建对tb1, tb2, tb3
控件的引用,因为它们是tableId
的内部控件。
如果是这样的话:
var tb2 = tableId.FindControl("tb2");
tb2.Visible = ...
答案 1 :(得分:0)
我已经测试了你的代码。并发现 tableId.Rows [3] .Cells [0] .InnerHtml 将始终提供示例3 ..根据您的aspx标记代码,这是正确的。
我认为你的行索引不正确,例如下面的
tableId.Rows [4] .Cells [0] .InnerHtml 在您的表结构中不存在。
这就是为什么你得到的错误指定的参数超出了有效值的范围。参数名称:索引
希望这会帮助你......快乐的编码...
答案 2 :(得分:-1)
你可以使用JQuery,就像这样......
$('tbody', '#tableid');
但我想这取决于你想用它们做什么,以及
JQuery docs: