Asp.net
屬性中的 UserControl 預設值
我有一個帶有一些布爾屬性的 UserControl。如果沒有在 .aspx 頁面中明確設置,我希望它們預設設置為 true,或者如果無法設置預設值,至少強制聲明它們。我知道有一種方法可以做到這一點,因為許多控制項都需要屬性,當您嘗試執行它並且它們沒有被聲明時會破壞您的應用程序。
我該怎麼做呢?
例子:
<je:myControl runat="server" id="myControl" showBox="False">如果 showBox 不在此聲明中,我希望系統中斷或將預設值設置為“true”。
謝謝!
使用它們的預設值定義您的屬性,如下所示:
private bool _ShowBox = false; public bool ShowBox { set { _ShowBox = value; } }或在控制項的建構子中,設置預設值:
public MyControl() { _ShowBox = false; }如果未分配,則拋出異常:
private bool _ShowBox = false; public bool ShowBox { set { _ShowBox = value; } get { return _ShowBox; } }
我知道我遲到了,但我只想提一下
[DefaultValue(false)]不會將該屬性設置為 false。請參閱:http: //msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx。它說:
“DefaultValueAttribute 不會導致成員使用屬性值自動初始化。您必須在程式碼中設置初始值。”
此屬性僅用於在 Visual Studio 設計器中指示您認為的預設值。如果有人使用您的控制項更改了此值,它將顯示為粗體,表示此值是非預設值。