2009-11-19 76 views
2

如何從代碼隱藏中選擇性地或完全啓用/禁用asp.net窗體/控件?如何啓用/禁用asp.net窗體/控件

以下代碼無法正常工作。 Coz在這種情況下沒有Enabled屬性。

public static void Disable(Page container) 
{ 
    for (int i = 0; i < container.Controls.Count; i++) 
    { 
     container.Form.Controls[i].Enabled = false; 
    } 
} 

回答

5

只有從WebControl繼承的控件將有Enabled財產。所以,你可以做這樣的事情你的循環中:

var webControl = container.Form.Controls[i] as WebControl; 
if(webControl != null) { 
    webControl.Enabled=false; 
} 
+0

文檔說明Enabled false會使控件「變暗」,並使它們在客戶端無法編輯。它更接近JMSA的要求,但文檔表明它只能在兼容「Internet Explorer 4 +」的瀏覽器中使用。 WTF是一款兼容IE4的瀏覽器? – 2009-11-19 09:54:59

+0

雖然它似乎不是瀏覽器的安全 – 2009-11-19 09:59:49

0

您可以使用Visible,而不是啓用。 ASP.NET框架不會調用Visible屬性設置爲false的控件的Render方法。

從文檔:

如果此屬性爲false,服務器 控制不會被渲染。您應該在組織 頁面佈局時考慮到這一點。

相關問題