在自定义webcontrol中显示可能的属性值

时间:2009-08-07 09:57:48

标签: c# asp.net visual-studio

我有一个自定义控件,可以将当前日期打印到页面中。 该控件具有Format属性,用于设置要打印的女巫DateTime属性。 (日期,日期,年份等......)

<TSC:DateTimeWriter runat="server" Format="Year" />

但我想要的是当我输入时:

  

格式=“

我想显示所有可能值的列表(使用Visual Studio)。

cs代码:

public class DateTimeWriter : Control
{
    public string Format { get; set; }

    protected override void Render(HtmlTextWriter writer)
    {
        writer.Write(writeDateTime());
    }

    private string writeDateTime()
    {
        var now = DateTime.Now;
        switch (Format)
        {
            case "Year":
                return now.Year.ToString();
            case "Day":
                return now.Day.ToString();
            etc...
            default:
                return now.ToString();
        }
    }
}

2 个答案:

答案 0 :(得分:2)

如果使Format属性为枚举而不是字符串,VS将能够显示支持的格式列表。 E.g:

public enum DateTimeFormat
{
    Year,
    ...
}

答案 1 :(得分:1)

创建枚举类型

命名空间YourNameSpace

{

[Serializable()]

public enum DateFormat

{

    Date,

    Day,

    Year

}

}

然后向您的控件添加属性:

    /// <summary>
    /// Date Format
    /// </summary>
    public DateFormat DateFormat
    {
        get
        {
            if (ViewState["DateFormat"] == null || ViewState["DateFormat"].ToString().Trim() == String.Empty)
            {
                return DateFormat.Date;  //Default
            }
            return (DateFormat)ViewState["DateFormat"];
        }
        set
        {
            ViewState["DateFormat"] = value;
        }
    }