问题描述:
在 ASP.NET 4 的 WebForm 应用程序中,将 TextBox,ListBox,DropDownList等 服务器控件的 Enabled 属性设置为 false 后,并没有禁用该控件。同时设置的样式会失效。终究原因就是在win7中IE访问没问题,但是win7访问win2008R2标准版的时候页面布局切换模式会产生样式丢失,查看html会产生例如 <input type="submit" name="btnDisable" value="禁用" id="btnDisable" disabled="disabled" class="aspNetDisabled XTR00_dList" />
删除模式下:按tab键会产生各个控件的验证并显示颜色
切换到照会模式必须入力的控件样式丢失、
例如実行[删除模式下的]会产生aspNetDisabled 样式
<input name="DJF01G1_cmdExec"tabIndex="133" disabled="disabled"class="aspNetDisabled XTR00_vButtonDis" id="DJF01G1_cmdExec"onmousedown="DJF01G1_cmdExec_onmousedown(this.id);"type="submit" value="実行"/>
上述原因就是aspNetDisabled 在这里捣乱了。这里是WebControl. DisabledCssClass 屬性给预设的值。
解决方法在页面的page_load里面加上WebControl.DisabledCssClass=””;
就解决页面产生aspNetDisabled样式了。在来回切换样式就不会丢失了。
WebControl. DisabledCssClass 属性的介绍
取得或設定要停用控制項時,將套用至呈現的 HTML 項目之 CSS 類別。
命名空間: System.Web.UI.WebControls
組件: System.Web(在 System.Web.dll 中)
語法
C#
publicstaticstring DisabledCssClass {get;set; }
ASP.NET
<asp:WebControlDisabledCssClass="String" />
屬性值
型別:System..::.String
控制項已停用時要套用至呈現的 HTML 項目之 CSS 類別。預設值為"aspNetDisabled"。
備註
這個屬性可用來變更用於呈現名稱DisabledCssClass個別的 Web 控制項的屬性。 根據預設,這個屬性會傳回"aspNetDisabled"。
當SupportsDisabledAttribute傳回衍生類別中覆寫false,值DisabledCssClass屬性是否要呈現的值為class控制項的 HTML 項目的屬性。 在此情況中,如果沒有值,在CssClass屬性,這兩個CSS 類別將會套用至呈現的 HTML 項目。class屬性所組成的值DisabledCssClass屬性之後的值CssClass屬性,以空格分隔。
這個屬性是靜態的這表示您可以設定僅適用於WebControl類別。 您將它設定為任何數值用於Web 應用程式中的所有控制項。您無法指定個別控制項的不同值。
如果您想要使用不同於預設的值"aspNetDisabled"的類別名稱,您通常可以將該怎 做的程式碼Application_StartGlobal.asax 檔案,如下列範例所示的方法:
C#
void Application_Start(object sender, EventArgs e)
{
WebControl.DisabledCssClass ="customDisabledClassName";
}
範例
下列範例會顯示為已停用呈現的 HTML Label控制何時SupportsDisabledAttribute屬性是false,當DisabledCssClass屬性有其預設值,以及何時CssClass屬性是空的。
<span id="Label1" class="aspNetDisabled">Test</span>
下列範例所示在相同的情況下呈現 HTML 除了CssClass屬性有"SampleStyle"的值:
<span id="Label1" class="aspNetDisabledSampleStyle">Test</span>
如需詳細資訊,請參閱SupportsDisabledAttribute屬性。
引自:http://msdn.microsoft.com/zh-tw/magazine/system.web.ui.webcontrols.webcontrol.disabledcssclass.aspx