私は.Net 4.0にAjaxControlToolkitを使用しています
日付と時刻を MM/DD/YYYY HH:MM 形式、つまり 24 時間形式の米国日付形式で表示/受け入れるテキスト ボックスを含むフォームを使用しています。
MaskedEditExtender と MaskedEditValidator で TextBox を使用しました。次のコードを見てください -
<p>
First Date Time :
<asp:TextBox ID="txtDateTime1" runat="server"></asp:TextBox>
<asp:MaskedEditExtender ID="mskDateTime1" runat="server"
Mask="99/99/9999 99:99" MaskType="DateTime" TargetControlID="txtDateTime1"
UserTimeFormat="TwentyFourHour">
</asp:MaskedEditExtender>
<asp:MaskedEditValidator ID="mskValDateTime1" runat="server"
ControlExtender="mskDateTime1" ControlToValidate="txtDateTime1"
IsValidEmpty="False"></asp:MaskedEditValidator>
</p>
<p>
Second Date Time :
<asp:TextBox ID="txtDateTime2" runat="server"></asp:TextBox>
<asp:MaskedEditExtender ID="mskDateTime2" runat="server"
Mask="99/99/9999 99:99" MaskType="DateTime" TargetControlID="txtDateTime2"
UserTimeFormat="TwentyFourHour">
</asp:MaskedEditExtender>
<asp:MaskedEditValidator ID="mskValDateTime2" runat="server"
ControlExtender="mskDateTime2" ControlToValidate="txtDateTime2"
IsValidEmpty="False"></asp:MaskedEditValidator>
</p>
上記の形式で日付を表示するために、以下に示すように ToString() で形式を使用しています-
protected void Page_Load(object sender, EventArgs e)
{
txtDateTime1.Text = DateTime.Now.ToString("MM/dd/yyyy HH:mm");
txtDateTime2.Text = DateTime.Now.ToString("MM/dd/yyyy HH:mm");
}
日付と時刻は正しく表示されますが、フォーカスがテキスト ボックスの外に出ると時刻が変わります。
なぜこれが起こっているのかわかりません。
次のスナップショットを見てください -
A) もともと
B) フォーカスアウト後に変更
誰でもこの問題を解決するのを手伝ってくれますか?
もしあれば、より良いアイデアを提供してください。
あなたの知恵を共有してくれてありがとう。