FormView EditItemTemplate中的格式化日期

时间:2011-07-08 15:35:12

标签: asp.net

这看起来应该很简单,但我完全失去了,关于如何实现FormView.EditItemTemplate的MSDN示例根本不涉及格式化。我有一个TextBox我可以像Date那样绑定到<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("CheckDate") %>' /> 类型的字段:

Bind

但是我没有使用时间组件,并希望编辑模式中的现有值显示为短日期格式。现在我得到“MM / dd / yyyy hh:mm:ss”。

尝试将格式代码添加到FormView.EditItemTemplate表达式导致编译错误,但我不知道在{{1}}中设置绑定的任何其他方法。救命啊!

3 个答案:

答案 0 :(得分:16)

Text='<%# Bind("CheckDate", "{0:MM/dd/yyyy}") %>'

应该有效

但您也可以通过更易读的方式在代码中执行此操作(IMO ToShortDateStringBind("CheckDate", "{0:MM/dd/yyyy}")更具可读性:

Private Sub FormView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.DataBound
        Select Case FormView1.CurrentMode
            Case FormViewMode.Edit
                Dim dr = DirectCast(FormView1.DataItem,DataRowView)
                Dim TextBox1 = DirectCast(FormView1.FindControl("TextBox1"), TextBox)
                Dim CheckDate = DirectCast(dr("CheckDate"), Date)
                TextBox1.Text = CheckDate.ToShortDateString()
        End Select
   End Sub

答案 1 :(得分:4)

您可以在bind属性中使用格式字符串作为第二个参数

<%# Bind("CheckDate", "{0:MM/dd/yyyy}") %>

一个很好的set of patterns,您可以使用它来格式化日期

答案 2 :(得分:1)

您可以在绑定时使用日期格式{0:d}或在Web.config中定义文化以使用 MM / dd / yyyy 格式。