換句話說,假設我有一堆div,它們都嵌套在一個div下。有沒有辦法避免在我想暴露給代碼隱藏的每個字段上編寫runat =「server」?
我可以在外部div上做些什麼,這樣我就不必在每個內部div上寫runat =「server」,但仍然可以通過我的代碼隱藏ID來訪問它們。
換句話說,假設我有一堆div,它們都嵌套在一個div下。有沒有辦法避免在我想暴露給代碼隱藏的每個字段上編寫runat =「server」?
我可以在外部div上做些什麼,這樣我就不必在每個內部div上寫runat =「server」,但仍然可以通過我的代碼隱藏ID來訪問它們。
對不起,以確認您的發現,但在代碼隱藏中訪問的所有.NET控件都必須有runat="server"
,並且父級控件不會像ViewState設置那樣級聯它們。
是的,這是一個問題。但是,如果你只想做一些與內部的div不要太複雜,例如更改顏色或類似的東西,你可以嘗試改變InnerHtml屬性:
<div id="divTest" runat="server">
<div id="test1" style="color:black">test1</div>
<div id="test2" style="color:black">test2</div>
</div>
protected void Page_Load(object sender, EventArgs e)
{
divTest.InnerHtml = divTest.InnerHtml.Replace("black", "blue");
}
另一種方法是使用jQuery來獲取每一個控制。
您可以編寫javascript。根據我的經驗,*大部分時間我想在後面展示一個'div'到我的代碼中,我只是推遲編寫javascript來完成這項工作。 :-) – drdwilcox 2011-12-21 01:19:14
[爲什麼ASP.NET Webforms使用「Runat = Server」屬性?](http://stackoverflow.com/questions/304290/why-does-asp-net-webforms-use-the -runat - 服務器 - 屬性) – 2011-12-21 18:19:31