1

私はこのようなものを持っています:

<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>

ID が異なる複数の「tbody」を使用しているため、いつでも削除または作成できます。

私がやりたいのは、テーブル「tableId」から複数の「tbody」から各行を取得することです。

C# では、コマンド " tableId.Rows[0].Cells[0].InnerHtml " を使用すると、" Example thead1 "という結果が得られます。

しかし、「tableId.Rows[3].Cells[0].InnerHtml」を使用すると、テーブル行で使用可能な「例 3」を取得できません。代わりに、その行がないというエラーが表示されます存在するか、インデックス外です。

4

3 に答える 3

0

私はあなたのコードをテストしました。そして、tableId.Rows[3].Cells[0].InnerHtmlが常に例 3を与えることがわかりました..これは、aspx マークアップ コードに従って正しいです。

行インデックスを間違って配置したと思います。つまり、以下のようなものです

テーブル構造に存在しないtableId.Rows[4].Cells[0].InnerHtml 。

そのため、 Specified argument was out of the range of valid values.Parameter name: index というエラーが発生します。

これがお役に立てば幸いです...幸せなコーディング...

于 2012-04-26T10:23:57.720 に答える
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 = ...
于 2012-04-26T09:52:07.550 に答える
-1

このようなJQueryを使用できます....

$('tbody', '#tableid');

しかし、私はあなたがそれらで何をしたいのか、そしてどこで

JQuery ドキュメント:

セレクター: http://api.jquery.com/category/selectors/

トラバース: http://api.jquery.com/category/traversing/

于 2012-04-26T10:02:00.783 に答える