Jas*_*son 14 asp.net user-controls default
我有一个UserControl,其中包含一些布尔属性.如果没有在.aspx页面中显式设置,我希望它们默认设置为true,或者至少强制它们在无法设置默认值时声明.我知道有一种方法可以做到这一点,因为许多控件都需要在您尝试运行时破坏应用程序并且未声明它们的属性.
我该怎么做呢?
例:
<je:myControl runat="server" id="myControl" showBox="False">
Run Code Online (Sandbox Code Playgroud)
如果showBox不在此声明之内,我希望系统中断或将默认值设置为"true".
谢谢!
bin*_*ord 27
我知道我迟到但我只是想提一下
[DefaultValue(false)]
Run Code Online (Sandbox Code Playgroud)
不会将该属性设置为false.请参阅:http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx.它说:
"DefaultValueAttribute不会导致成员使用属性的值自动初始化.您必须在代码中设置初始值."
此属性仅用于在Visual Studio Designer中指示您认为是默认值.如果使用您的控件的某个人更改了此值,它将以粗体显示,表示此值为非默认值.
Can*_*var 20
使用以下默认值定义属性:
private bool _ShowBox = false;
public bool ShowBox
{
set { _ShowBox = value; }
}
Run Code Online (Sandbox Code Playgroud)
或者在控件的构造函数中,设置默认值:
public MyControl()
{
_ShowBox = false;
}
Run Code Online (Sandbox Code Playgroud)
如果没有分配,则抛出异常:
private bool _ShowBox = false;
public bool ShowBox
{
set { _ShowBox = value; }
get { return _ShowBox; }
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13163 次 |
最近记录: |