我正在做一个演示应用程序,用于学习在asp.net文本框控件中引入的新HTML5输入类型(示例 - 日期,电子邮件等作为TextMode)的使用。
在我的示例页面中,我想使用asp:TextBox和TextMode =“Date”显示服务器端日期字段数据。
asp.net代码如下:
<asp:TextBox ID="txtExpenseDate" TextMode="Date" runat="server"></asp:TextBox>
C#后端代码为
protected void Page_Load(object sender, EventArgs e)
{
txtExpenseDate.Text = DateTime.Now.ToString("MM/dd/yyyy");
}
但是在加载页面时,日期值不会显示在文本框中。
我做错了什么?
附录: 刚才意识到,既然这是HTML5,我必须提到浏览器版本。我使用的是最新的Google Chrome版本33.0.1750.117米。这会将该字段显示为选择日期的日历,从而支持TextMode =“Date”属性的HTML5等效项。
问候,
萨米特
答案 0 :(得分:5)
尝试以下代码
protected void Page_Load(object sender, EventArgs e)
{
this.txtExpenseDate.Text = DateTime.Now.ToString("yyyy-MM-dd");
}
http://forums.asp.net/t/1856516.aspx?Problem+with+date+textmode+for+textbox+in+vs2012+net+4+5
答案 1 :(得分:1)
但是当页面加载时,日期值不会显示在 文本框。
您需要在网页的TextBox
事件中设置Page_Load
控件的值
试试这个:
protected void Page_Load(object sender, EventArgs e)
{
txtExpenseDate.Text = DateTime.Now.ToString("MM/dd/yyyy");
}
答案 2 :(得分:1)
您的TextMode设置为Date 因此,您需要以精确的日期格式转换,您可以选择将textmode设置为日期。如下。
this.txtExpenseDate.Text = DateTime.Now.ToString("yyyy-MM-dd");
this.txtExpenseDate.TextMode=TextBoxMode.Date;