【问题标题】:Changing the text in a textbox with type date ASP.NET更改日期类型为 ASP.NET 的文本框中的文本
【发布时间】:2018-05-28 14:39:21
【问题描述】:

我正在尝试将文本框(type = "Date")设置为我从数据库中获取的字符串值。

我尝试了以下方法:

txtDOB.Text = tempRow["DOB"].ToString();
txtDOB.Attributes = tempRow["DOB"].ToString();

但不幸的是,我没有运气。 提前致谢。

【问题讨论】:

  • 尝试像 String.Format(tempRow[“DOB”],”yyyy-mm-did”);
  • 不幸的是不起作用,它只是保持在“dd/mm/yyyy”的起始值上。当我更改 type = "Date" 时,它似乎不像普通的文本框。

标签: c# asp.net date textbox


【解决方案1】:

首先,确保 tempRow["DOB"] 中的值有效。

var dob = Convert.ToDateTime(tempRow["DOB"]);

之后,您可以简单地:

txtDOB.Text = dob.ToString("MM/dd/yyyy");
txtDOB.Attributes = dob.ToString("MM/dd/yyyy");

【讨论】:

    【解决方案2】:

    这通常是由于文本框不理解您提供的数据的字符串格式。

    尝试将您的代码更改为:

    txtDOB.Text = tempRow["DOB"].ToString("yyyy-MM-dd");
    txtDOB.Attributes = tempRow["DOB"].ToString("yyyy-MM-dd");
    

    在调试时验证(通过使用 Visual Studio 的即时窗口)以查看“tempRow["DOB"].ToString("yyyy-MM-dd")" 是否输出有效的日期字符串。

    【讨论】:

    • 虽然这适用于 DateTime.Now() 之类的东西,但它不适用于 tempRow。它正在重载 .ToString()。不过感谢您的帮助:)
    • 啊,我假设您的行是 DateTime 类型 - 我们使用 DevExpress MySql 连接器,在我们的应用程序中,行被转换为原始类型。
    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 2018-07-03
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2020-07-04
    相关资源
    最近更新 更多