我正在使用AjaxControlToolkit for .Net 4.0
我有一个带有文本框的表单,以MM / DD / YYYY HH:MM格式显示/接受日期和时间,即24小时时间格式的美国日期格式。
我使用了TextBox和MaskedEditExtender以及MaskedEditValidator。 请查看以下代码 -
<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)焦点改变后改变
任何人都可以帮我解决这个问题。
如果有的话,请提供更好的想法。
感谢分享你的智慧。
答案 0 :(得分:0)
最后,我回答了我自己的问题,因为没有收到开发者的任何回复。 我发现它实际上是MaskEditExtender的一个问题。您可以查看this discussion。