2012-05-04 1 views
0

ASP.Netの場合、私はサーバーから特定のことを実行できるように、さまざまなHTML要素runat = "server"私はTHをrunat = "server"にすることができません。TH runat = "server"を作ることができないのはなぜですか?

どうしてですか?

例:

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

更新:

私のせい、私が何かをコピーして、私は投稿する前に私はそれを変更していない...これは、額のスラッパーかもしれないコード

+2

マークアップにthLastColumnがありません –

+0

コードビハインドで「自動的に」宣言されたのはどのタイプですか? **編集**:TableCellとして、 'thMyCell.Visible = false'が機能します。 –

+0

TDはTDと同じTRにありますか? –

答えて

0

で修正されていますが、 :あなたの実装では、あなたの一例として単純である場合は、あなたの目は「thMyCell」ではなく、「thLastColumn」

+0

申し訳ありませんが、コードをコピーしただけで、正しく設定されていません。私は正しい名前を持っていてもまだ動作しません – Miles

+0

巨大なリピーターを作成したTHがヘッダーテンプレート内に座っていたことが判明しました...コードの背後にある通常の方法では見えませんでした...ああ... – Miles

0

と呼ばれる

ので、あなたはこれで問題を持っている必要があります。それは私には何の問題も与えず、何の誤りもなくコンパイルします。

test.ColSpan = 2; 

これはあなたのために働いていない場合、私は分離しようとするだろう:コードビハインドインテリセンスHtmlTableCellとしてそれをピックアップ、それが問題になることはありませんで

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

それは - 新しいWebフォームを作成し、上記のマークアップに貼り付け、コードビハインドでそれにアクセスしようとします。 Intellisenseは問題なくそれを拾う必要があり、フォームはうまくコンパイルする必要があります。

関連する問題