【问题标题】:Set Properties and create events for a user control为用户控件设置属性并创建事件
【发布时间】:2010-12-02 12:43:30
【问题描述】:

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

usercontrol1.dd-mm-yyyy. 

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

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

公共部分类 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;
    }

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

【问题讨论】:

  • 我感觉你问的问题很多人都能回答,但我怕你写的不是很清楚。您可以尝试进一步澄清您的问题。
  • thankx,但我不知道解释更多,你能告诉它的褶皱在哪里
  • 我改变了我的问题。感谢克劳迪奥先生的评论
  • 目前还不清楚你在追求什么。您是否正在寻找一种方法来获取特定本地的所有日期时间模式?您想知道如何在两个用户控件之间传递状态吗?什么是“另一种形式”,完全是另一个页面,同一个 aspx 页面中的另一个控件?另外,您尝试过什么,搜索过什么,什么没用?

标签: c# asp.net


【解决方案1】:

不确定我是否正确地回答了这个问题不是很清楚,但无论如何:

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

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

并且在您的属性的设置器代码中处理逻辑以根据枚举值分配日期格式(例如)(使用开关/大小写)

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

【讨论】:

  • 我添加了我的编码,请查看它并请帮助我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多