设置属性并为用户控件创建事件

时间:2010-12-01 13:00:27

标签: c# asp.net

我正在使用C#在asp.net中创建一个Web用户控件,我可以从日历中选择日期并将其显示在文本框中。当我从日历中选择日期时,它必须显示在文本框中。 现在我需要设置自己的属性,通过它我可以在cs代码文件中选择日期时间模式。例如

usercontrol1.dd-mm-yyyy. 

这是一个例子。现在我想要“en-us”的所有日期时间模式。当我在另一个页面中使用该usercontrol时,我想将任何属性(日期时间模式)设置为该控件。请帮我!!!

我尝试了这种编码,但没有用......请查看它并给我解决方案

public partial class DateControl:System.Web.UI.UserControl     {

    string dateformat;

    public string Dateformat
    {
      get { return dateformat;}

        set { dateformat = value; }

    }


    protected void Page_Load(object sender, EventArgs e)
    {

        if(!Page.IsPostBack)
        {  
        PageLoad();
        lnlbtnChangeDate.Visible = false;
        ddlDateFormat.Visible = false;
        Calendar.Visible = false;
        }
        lblError.Visible = false;

    }
    public void PageLoad()
    {


        if (txtBoxDate.Text != "")
        {
            Calendar.Visible = false;
        }
        CultureInfo ci = new CultureInfo("fr-fr");
        string[] format = ci.DateTimeFormat.GetAllDateTimePatterns();
        foreach (string i in format)
        {
            ddlDateFormat.Items.Add(i);
        }

   }




    protected void lnkbtnPickDate_Click(object sender, EventArgs e)
    {
        Calendar.Visible = true;
        lnlbtnChangeDate.Visible = true;
        ddlDateFormat.Visible = false;

     }



    public void Calendar_SelectionChanged1(object sender, EventArgs e)
    {
        txtBoxDate.Text = Calendar.SelectedDate.ToShortDateString();

    }

    protected void ddlDateFormat_SelectedIndexChanged(object sender, EventArgs e)
    {

        txtBoxDate.Text = Calendar.SelectedDate.ToString(ddlDateFormat.SelectedValue.ToString());   
    }


    protected void lnlbtnChangeDate_Click(object sender, EventArgs e)
    {
        Calendar.Visible = false;
        if (txtBoxDate.Text == "")
        {
            lblError.Visible = true;
        }
        else
        {
            lblError.Visible = false;
            lnlbtnChangeDate.Visible = true;
            ddlDateFormat.Visible = true;
        }
    }

    protected void lnkbtnClear_Click(object sender, EventArgs e)
    {
        txtBoxDate.Text = "";
        Calendar.Visible = false;
        lnlbtnChangeDate.Visible = false;
        ddlDateFormat.Visible = false;
        lblError.Visible = false;
    }

我说我想为我的用户控件设置属性并为其创建事件.... plz帮助我

1 个答案:

答案 0 :(得分:0)

不确定我在问题上做得不是很清楚,但无论如何:

您可以为您的用户控件创建属性,并为其分配枚举

 public enum My_UserControl_DateFormats
    {
        YYYYMMDD = 1,
        YYYYMMDDHH = 2,
        YYYYMMDDHHmmSS = 3
    }

在属性的setter代码中处理根据枚举值分配日期格式(例如)的逻辑(使用switch / case)

这是众多可能性中的一种。