我正在创建几个.NET用户控件,我正在尝试找出设置属性的最佳方法。我有一个地址控件,我正在尝试创建一个名为ShowCountry的属性,它将隐藏或显示控件的国家/地区ddl。
我一直在尝试将大多数属性设置为类似于以下代码:
public bool ShowCountry
{
get { return (bool)ViewState["ShowCountry"]; }
set
{
ViewState["ShowCountry"] = value;
pnlCountry.Visible = value;
}
}
如何为此属性设置默认值?当我使用控件运行我的页面时,当我的一个函数中使用ShowCountry时,它会立即在“get {}”中出错,因为我从未在控件的标记中设置ShowCountry =“false”。如果我在声明控件时设置此属性一切正常。 我正在使用ViewState做一个在回发中保持属性值的好方法吗?
有人能告诉我他们将如何写这个属性吗? 规格如下: 必须保留回发值,必须默认为false
答案 0 :(得分:0)
你可以试试这个以避免错误..
public bool ShowCountry
{
get {
if(ViewState["ShowCountry"] != null ){
return (bool)ViewState["ShowCountry"];
}
else {
//return the default value
return false;
}
}
set
{
ViewState["ShowCountry"] = value;
pnlCountry.Visible = value;
}
}
我认为视图状态是最佳方法,或者您可以使用隐藏字段以节省回发后的价值。