【问题标题】:Web user control set default valueWeb 用户控件设置默认值
【发布时间】:2011-04-11 09:28:02
【问题描述】:

如何将Text的默认值设置为“abc”?

public enum MessageType
{
    Good,
    Bad
}

public partial class Message : System.Web.UI.UserControl
{
    public bool Visible { get; set; }       // Is the error visible
    public string Text { get; set; }        // Text of the error message
    public MessageType Type { get; set; }   // Message type

    protected void Page_Load(object sender, EventArgs e)
    {
        ErrorPanel.Visible = this.Visible;
        ErrorMsg.Text = this.Text;

        // Hide if nothing to display
        if (this.Text == null)
                this.Visible = false;

        // Set correct CSS class
        if (this.Type == MessageType.Good)
            ErrorPanel.CssClass = "good-box";
        else
            ErrorPanel.CssClass = "bad-box";
    }
}

【问题讨论】:

    标签: c# asp.net webusercontrol


    【解决方案1】:

    也许你可以使用老式的声明属性

    private string _Text = "abc";
    
    public string Text
    {
       get { return _Text; }
       set { _Text = value; }
    }
    

    【讨论】:

      【解决方案2】:

      您可以向属性添加 DefaultValue 属性吗?

      例如:

      [System.ComponentModel.DefaultValue( "abc" )]
      public string Text {get;set;}
      

      【讨论】:

      • 似乎适用于我从中复制它的用户控件。值在设计器中设置为默认值,如果更改以粗体突出显示
      【解决方案3】:

      我相信最好的地方是在类的构造函数

      private string _Text;    
      public string Text
      {
         get { return _Text ?? "Your Default"; }
         set { _Text = value; }
      }
      

      编辑

      DefaultValueAttribute 不会导致成员使用属性值自动初始化。您必须在代码中设置初始值。

      From MSDN

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-25
        • 1970-01-01
        • 2010-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多