【问题标题】:Date format in textbox [ASP.NET]文本框中的日期格式 [ASP.NET]
【发布时间】:2018-07-03 07:03:25
【问题描述】:

我有一个从我的数据库中填充数据的网格。作为我的网格的一部分,我有一个查看按钮,它以模式形式查看记录。

我的一个记录有一个日期。当模态表单中的文本框填充日期时,它会显示如下:“2018/01/25 12:00:00 AM”

我只想显示日期而不显示时间。我已经确保在我的 SQL 表中,它只是保存的日期。

这是我网格中的列:

 <asp:BoundField DataField="Date" HeaderText="Date" DataFormatString="{0:dd/MMM/yyyy}" SortExpression="Date"/>

这是我的文本框:

 <asp:TextBox ID="txtDate" runat="server" placeholder="Date" class="form-control"></asp:TextBox>

我尝试了以下方法,但它不起作用:

txtDate.Text = Y.Date.ToShortDateString();
Text='<%#((DateTime)Bind("NewDate")).ToString("dd/MM/yyyy")%>'
Text='<%# Bind("JoinDate", "{0:MM-dd-yyyy}") %>' 

我尝试编写 javascript 代码并限制字符,但加载时仍显示时间。

我只想在我的文本框中显示日期。

请指教。谢谢

【问题讨论】:

  • 文本框与 SQL 无关,除非您存储的是字符串而不是日期。 I have made sure that inside my SQL table that it is only date being saved and it is. 这是什么意思?列的类型是datedatetime 但你剥夺了时间部分?还是您将日期转换为字符串?
  • 这意味着我已经确保我的程序不会将时间保存到 SQL 中。
  • 无论如何,您都没有发布加载数据或绑定数据的代码。如果您在任何时候将日期转换为字符串,或将字符串存储在数据库中,则格式字符串将不起作用,因为您没有有可供格式化的日期。
  • 这没有任何解释。如果类型是datedatetime,格式字符串将起作用,您不必担心。如果是varcharnvarchar,则根本没有日期,只是一个看起来像日期且无法格式化的字符串。确保您的字段使用日期类型并且在加载时不要将其转换为字符串,例如使用ToString() 或将其存储在字符串属性中。顺便说一句,您还没有发布您的代码
  • 类型为日期

标签: sql asp.net


【解决方案1】:

如果你想直接绑定你的数据,那么添加到TextBox:

Text='<%# String.Format("{0:MM-dd-yyyy}", Eval("JoinDate")) %>'

如果您使用文本框,我假设您希望进行双向通信,因此请使用 Eval 而不是 Bind。

【讨论】:

    【解决方案2】:

    这应该可行。

    <asp:TextBox Text='<%#DataBinder.Eval(Container.DataItem,"Date", "{0:MM/dd/yyyy}")%>' ID="txtDate" runat="server" placeholder="Date" class="form-control"></asp:TextBox>
    

    【讨论】:

      【解决方案3】:

      我必须将我的日期转换为 SQL 中的特定格式。

      我在我的选择语句中将此添加到我的存储过程中

      CONVERT(VARCHAR(10), tb_Schedule.Date, 103) [Date]
      

      【讨论】:

        【解决方案4】:

        将您的网格代码更改为:

        <asp:BoundField DataField="Date" HeaderText="Date" DataFormatString="{0:dd/MM/yyyy}" SortExpression="Date"/>
        

        日期格式有3个M,去掉1个M,格式为{0:dd/MM/yyyy}

        【讨论】:

        • 3 Ms 的原因是可以这样显示日期:25/Jan/2018 但是,我确实尝试了您的建议,但时间仍然显示在我的模态文本框中形式
        • 我试试&lt;asp:TemplateField HeaderText="Edit" ItemStyle-HorizontalAlign="Center"&gt; &lt;ItemTemplate&gt; &lt;asp:TextBox ID="txtDate" runat="server" placeholder="Date" class="form-control" Text='&lt;%# Bind("Date", "{0:dd-MM-yyyy}") %&gt;'&gt;&lt;/asp:TextBox&gt; &lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt;,它有效。我不确定为什么它在你的情况下不起作用......
        • 我不得不在我的选择语句 CONVERT(VARCHAR(10), tb_Schedule.Date, 103) [Date] 中将它添加到我的存储过程中。无论如何感谢您的帮助
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-10
        • 1970-01-01
        • 1970-01-01
        • 2017-06-03
        • 1970-01-01
        • 2017-02-27
        • 1970-01-01
        相关资源
        最近更新 更多