MaskedEditExtender问题

时间:2012-05-11 12:33:11

标签: asp.net c#-4.0 ajaxcontroltoolkit maskededitextender maskededitvalidator

我正在使用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)最初 Software Genius Inc

B)焦点改变后改变 Software Genius Inc

任何人都可以帮我解决这个问题。

如果有的话,请提供更好的想法。

感谢分享你的智慧。

1 个答案:

答案 0 :(得分:0)

最后,我回答了我自己的问题,因为没有收到开发者的任何回复。 我发现它实际上是MaskEditExtender的一个问题。您可以查看this discussion