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」形式で表示しましたが、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>

どんな助けでも大歓迎です。

4

2 に答える 2

0

こんにちは、日付形式を次のように使用します

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

ありがとう

于 2013-02-26T07:36:20.200 に答える
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 に答える