【问题标题】:(ASP.NET User control) - problems setting properties(ASP.NET 用户控件)- 设置属性的问题
【发布时间】:2014-10-04 08:15:32
【问题描述】:

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

我一直在尝试设置类似于以下代码的大部分属性:

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

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

有人可以告诉我他们将如何编写此属性吗? 规格如下: 必须在回发中保持价值,必须默认为 false

【问题讨论】:

    标签: c# asp.net user-controls


    【解决方案1】:

    你可以试试这个以避免错误..

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多