我正在使用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帮助我
答案 0 :(得分:0)
不确定我在问题上做得不是很清楚,但无论如何:
您可以为您的用户控件创建属性,并为其分配枚举
public enum My_UserControl_DateFormats
{
YYYYMMDD = 1,
YYYYMMDDHH = 2,
YYYYMMDDHHmmSS = 3
}
在属性的setter代码中处理根据枚举值分配日期格式(例如)的逻辑(使用switch / case)
这是众多可能性中的一种。