0

ASP.Net の場合、さまざまな HTML 要素 runat="server" を作成できるので、サーバーから特定の操作を実行できますが、runat="server" への TH を取得できません。

なぜだめですか?

例:

<table>
<tr>
<td id="tdMyCell" runat="server"></td>
<th id="thMyCell" runat="server"></th>
</tr>
</table>

しかし、サーバー側からは TD にしかアクセスできません。以下の 2 行を試してみましたが、最初の行はコンパイルされず、2 番目の行は常に null オブジェクトを返します。

thMyCell.Visible = false;
(this.FindControl("thMyCell") as System.Web.UI.HtmlControls.HtmlTableCell).Visible = false;

アップデート:

私のせいです、私は何かをコピーし、投稿する前に変更しませんでした...コードで修正されました

4

2 に答える 2

0

これは額叩きかもしれませんが、

あなたの th は「thLastColumn」ではなく「thMyCell」と呼ばれているため

于 2012-05-04T21:39:02.220 に答える
0

あなたの実装があなたの例と同じくらい単純な場合、これに問題があるはずです。問題は発生せず、エラーなしでコンパイルされます。

<table>
    <tr>
        <th id="test" runat="server"></th>
    </tr>
</table> 

分離コードでは、インテリセンスはそれを として取得しますHtmlTableCellが、それは問題にはなりません:

test.ColSpan = 2;

これがうまくいかない場合は、分離しようとします。新しい Web フォームを作成し、上記のマークアップに貼り付けてから、コード ビハインドでアクセスしてみてください。Intellisense は問題なくそれを取得し、フォームは正常にコンパイルされるはずです。

于 2012-05-04T22:32:05.227 に答える