Asp.net

屬性中的 UserControl 預設值

  • December 6, 2016

我有一個帶有一些布爾屬性的 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 設計器中指示您認為的預設值。如果有人使用您的控制項更改了此值,它將顯示為粗體,表示此值是非預設值。

引用自:https://stackoverflow.com/questions/819068