3

ASPX ページに html テーブルがあり、一部の処理のためにコード ビハインドで使用したいと考えています。表を以下に示します。

<table class="hovertable" id="tblData">
    <tr>
        <th>ID:</th>
        <td colspan="3" style="font-weight: bold">
            <%= Eval("ID") %>
        </td>
    </tr>
    <tr>
        <th>Date:</th>
        <td><%# Eval("Date", "{0:dd-MMM-yyyy}") %></td>
        <th>Amount:</th>
        <td><%# Eval("Amount", "{0:C}") %>
    </tr>
</table>

ただし、テーブルに runat="server" 属性を追加すると、次のエラーが発生します。

CS1502: The best overloaded method match for 'System.Web.UI.HtmlControls.HtmlTableRowCollection.Add(System.Web.UI.HtmlControls.HtmlTableRow)' has some invalid arguments

ここで何が間違っているのでしょうか?私は何かを見逃していますか?

4

6 に答える 6

4

OKみんな、私はこの問題を自分で解決しました。<td>これを引き起こした問題は、 に対応する<tr>要素がないことが原因でした。以下のようなものでした。

<table class="hovertable" id="tblData">
    <tr>
        <th>ID:</th>
        <td colspan="3" style="font-weight: bold">
            <%= Eval("ID") %>
        </td>
    </tr>
    <tr>
        <th>Date:</th>
        <td><%# Eval("Date", "{0:dd-MMM-yyyy}") %></td>
        <th>Amount:</th>
        <td><%# Eval("Amount", "{0:C}") %>
    </tr>
    <td colspan='4'>
       Some data....
    </td>
</table>
于 2012-10-01T04:54:49.167 に答える
4

HTML テーブル (純粋な asp.net サーバー コントロールではない) には、asp.net サーバー コントロールを含めることはできません。この答えを見てください:

http://forums.asp.net/t/1524580.aspx/1

私の意見では、次の質問を自問する必要がありますか?

このクライアント側またはサーバー側を解決する必要がありますか?

答えがクライアントの場合は、更新ロジックを Ajax で実装する必要があります。それ以外の場合は、ASP.NET サーバー コントロールを使用してサーバー側で実装できます。

于 2012-09-27T06:10:09.067 に答える
0

また、tbody 要素を削除すると、td の不一致に対するエラーはスローされません Nikhil Mittal

于 2015-06-12T07:57:01.527 に答える
0

<asp:Labels>データを操作する必要がある場所を追加してみてください。

<table>
<tr><td><asp:Label id="lblRow" runat="server" /></td></tr>
</table>

runat="server"表の列と行は純粋な html であるため、タグ内にある場合、コード ビハインドを介してアクセスすることはできません。

もう 1 つの方法は、 a を使用StringBuilderしてコード ビハインドで html テーブルを作成し、asp:LiteralControlテーブルを出力することです。

于 2012-09-27T06:12:49.453 に答える
0

これも同じ用途で使えると思います

<asp:Table ID="Table1" runat="server">
</asp:Table>

あなたがやろうとしているのは、runat="server"属性をHTMLコントロールに追加することです

于 2012-09-27T06:10:30.750 に答える