(ASP.NET用户控件) - 设置属性的问题

时间:2014-10-04 08:15:32

标签: c# asp.net user-controls

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

我一直在尝试将大多数属性设置为类似于以下代码:

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

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

有人能告诉我他们将如何写这个属性吗? 规格如下: 必须保留回发值,必须默认为false

1 个答案:

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

我认为视图状态是最佳方法,或者您可以使用隐藏字段以节省回发后的价值。