请参阅以下代码:
<asp:TemplateField HeaderText="DOB" SortExpression="dob" >
<EditItemTemplate >
<asp:TextBox ID="TextBox3" Width="60px" runat="server" Text='<%# Bind("dob", "{0:d-M-yyyy}") %>'></asp:TextBox>
<asp:CalendarExtender ID="TextBox3_CalendarExtender" runat="server" Enabled="True" Format="d-M-yyyy" TargetControlID="TextBox3">
</asp:CalendarExtender>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("dob", "{0:d-M-yyyy}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
我在db中有一个名为“dob”的DateTime列。我在绑定时将它格式化为“d-M-yyy”。 除非用户直接从GridView更新他的DOB,否则一切都很完美。
因为我在文本框中以“d-M-yyyy”格式显示日期,而db服务器将其视为“mm-dd-yyyy”格式,然后当用户想要更新数据时出现问题。
顺便说一下,服务器提出了这个问题:
System.FormatException: String was not recognized as a valid DateTime.
更新代码:
UpdateCommand="update family_members_info set dob=@dob where memberID=@memberID">
<UpdateParameters>
<asp:Parameter Name="memberID" />
<asp:Parameter Name="dob" Type="DateTime" />
</UpdateParameters>
非常感谢任何帮助。
答案 0 :(得分:0)
您可以使用日期格式
<asp:TextBox ID="TextBox3" Width="60px" runat="server" Text='<%# Bind("dob", "{0:dd-MMM-yyyy}") %>'></asp:TextBox>
感谢
答案 1 :(得分:0)
在我的案例中有助于添加
<globalization culture="cs-CZ" uiCulture="cs-CZ" />
web.config文件中的标记。
来源:http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.71).aspx