【问题标题】:How to set value from server side code to an asp.net TextBox with TextMode="Date"?如何使用 TextMode="Date" 将服务器端代码的值设置为 asp.net TextBox?
【发布时间】:2014-03-24 00:52:52
【问题描述】:

我正在做一个演示应用程序,用于学习在 asp.net 文本框控件中引入的新 HTML5 输入类型(例如日期、电子邮件等作为 TextMode)的使用。

在我的示例页面中,我想使用带有 TextMode="Date" 的 asp:TextBox 显示服务器端日期字段数据。

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 m。这会将字段显示为日历以选择日期,因此支持 HTML5 等效的 TextMode="Date" 属性。

问候,

提交

【问题讨论】:

    标签: c# asp.net html


    【解决方案1】:

    试试下面的代码

     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

    【讨论】:

    • 日期格式“yyyy-MM-dd”是这里的答案,这对我有用。
    【解决方案2】:

    但是当页面加载时,日期值不会显示在 文本框。

    需要在网页的Page_Load事件中设置TextBox控件的值

    试试这个:

    protected void Page_Load(object sender, EventArgs e)
    {
        txtExpenseDate.Text = DateTime.Now.ToString("MM/dd/yyyy");
    }
    

    【讨论】:

    • 是的,是的。我把它放在一个事件处理程序/方法中。我认为这很明显,所以我没有将问题中的代码 Page_Load 包装起来。但是使用 even/ 函数包装器 - 它不起作用。
    • 为了清楚起见,我现在在问题中添加了包装器。还没有成功。
    【解决方案3】:

    您的 TextMode 设置为 Date 因此,您需要完全转换为日期格式,您可以选择将 textmode 设置为日期。如下所示。

    this.txtExpenseDate.Text = DateTime.Now.ToString("yyyy-MM-dd");
    this.txtExpenseDate.TextMode=TextBoxMode.Date;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 2011-05-01
      • 2013-10-10
      • 1970-01-01
      相关资源
      最近更新 更多