2012-05-04 33 views
0

對於ASP.Net,我知道我可以製作很多不同的HTML元素runat =「server」,所以我可以從服務器做出特定的事情,但我無法獲得TH到runat =「server」。爲什麼我不能做一個TH runat =「服務器」

爲什麼不呢?

例如:

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

但是從服務器端,我只能夠訪問TD。我試過下面兩行,第一行不會編譯,第二行總是返回空對象。

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

更新:

是我的錯,我複製的東西,我張貼之前,我並沒有改變它...它被固定在代碼

+2

標記中沒有thLastColumn –

+0

什麼類型是在代碼隱藏中聲明的「th」(自動)? **編輯**:作爲TableCell,所以'thMyCell.Visible = false'起作用。 –

+0

TH與TD相同的TR? – 2012-05-04 21:40:35

回答

0

這可能是一個額頭搭接,但:

因爲你的號被稱爲「thMyCell」,而不是「thLastColumn」

+0

抱歉,我剛剛複製了代碼,並且設置不正確。如果我有正確的名字,仍然不起作用 – Miles

+0

原來有人創建了一個巨大的中繼器,並且TH位於標題模板中......難怪在後面的代碼中通常的方法不可見...啊... – Miles

0

如果你的實現是直截了當作爲你的榜樣,你應該有這個問題。它不給我任何問題,並編譯沒有任何錯誤。

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

在代碼隱藏智能感知它撿起作爲HtmlTableCell,但不應該是一個問題:

test.ColSpan = 2; 

如果這不是爲你工作,我會嘗試隔離它 - 創建一個新的Web表單並粘貼到我上面的標記中,然後嘗試在代碼隱藏中訪問它。智能感應應該沒有問題,並且表單應該編譯得很好。

相關問題