2014-10-04 96 views
0

我正在创建几个.NET用户控件,我试图找出设置属性的最佳方法。我有一个地址控件,我试图创建一个名为ShowCountry的属性,它将隐藏或显示控件的国家ddl。(ASP.NET用户控件) - 设置属性的问题

我一直在试图设置我的大部分性质类似于下面的代码:

public bool ShowCountry 
{ 
    get { return (bool)ViewState["ShowCountry"]; } 
    set 
    { 
     ViewState["ShowCountry"] = value; 
     pnlCountry.Visible = value; 
    } 
} 

我将如何设置此属性的默认值?当我使用控件运行页面时,当ShowCountry用于其中一个函数时,它会立即在“get {}”中出错,因为我从未在控件的标记中设置ShowCountry =“false”。如果我在声明控件时设置了这个属性,那么一切正常。 也就是我正在做的与ViewState一个很好的方法来保持回传属性值?

有人能告诉我他们将如何写这个属性? 的规格是: 必须保持在页面返回值,必须默认为false

回答

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; 
     } 
    } 

我觉得视图状态是最好的办法或者,你可以使用隐藏字段为了保存价值反对回发。