这看起来应该很简单,但我完全失去了,关于如何实现FormView.EditItemTemplate
的MSDN示例根本不涉及格式化。我有一个TextBox
我可以像Date
那样绑定到<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("CheckDate") %>' />
类型的字段:
Bind
但是我没有使用时间组件,并希望编辑模式中的现有值显示为短日期格式。现在我得到“MM / dd / yyyy hh:mm:ss”。
尝试将格式代码添加到FormView.EditItemTemplate
表达式导致编译错误,但我不知道在{{1}}中设置绑定的任何其他方法。救命啊!
答案 0 :(得分:16)
Text='<%# Bind("CheckDate", "{0:MM/dd/yyyy}") %>'
应该有效
但您也可以通过更易读的方式在代码中执行此操作(IMO ToShortDateString
比Bind("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 格式。