1

参考下面的代码:

  <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 列。我在绑定时将其格式化为“dM-yyy”。除非用户直接从 GridView 更新他的 DOB,否则一切正常。

因为,我在文本框中以“dM-yyyy”格式显示日期,而数据库服务器将其视为“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>

任何帮助将不胜感激。

4

2 回答 2

0

在我的情况下,帮助添加

<globalization culture="cs-CZ" uiCulture="cs-CZ" />

web.config 文件中的标记。

资料来源:http: //msdn.microsoft.com/en-us/library/system.globalization.cultureinfo (v=vs.71).aspx

于 2014-07-06T09:59:07.997 回答
0

嗨使用日期格式作为

   <asp:TextBox ID="TextBox3" Width="60px" runat="server" Text='<%# Bind("dob", "{0:dd-MMM-yyyy}") %>'></asp:TextBox>

谢谢

于 2013-02-26T07:36:20.200 回答