ASP.NET - MaskedEditExtender problem with time

Asked By mostafa hamdy on 08-May-12 08:28 AM
Earn up to 40 extra points for answering this tough question.
Hello all
I have some web site in asp.net 4.0 contains some web page have some text boxs to display the date and time from data base , some text box I have set a MaskedEditExtender  to just allow the user to enter the valid time in 24h format
but when I have some date time like 04/05/2012 12:30 PM comes from database and I try to set it to the text box which assigne to the time I found that the time displaye like the following 24:30  really it makes me made, ,y html code
like the following:

<asp:TextBox ID="txtEditStartTime" runat="server" __designer:wfdid="w22" CssClass="StylText"

Width="50px" ></asp:TextBox>

<ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender10" runat="server" TargetControlID="txtEditStartTime"

Mask="99:99" MessageValidatorTip="true" OnFocusCssClass="MaskedEditFocus" UserTimeFormat="TwentyFourHour"

OnInvalidCssClass="MaskedEditError" MaskType="Time" DisplayMoney="Left" AcceptNegative="Left"

ErrorTooltipEnabled="True" />

and the enter code with in the cs file like the following:
ActionManager act = new ActionManager();

txtEditStartTime.Text = act.ActionStartDate.Value.ToShortTimeString();
and the value for the act.ActionStartDate from DB was  04/05/2012 12:30 PM  please if any body get what I mean and can help me please send me or tell me about some URL may help me to solve this issue
Regards
Mostafa

Somesh Yadav replied to mostafa hamdy on 09-May-12 02:24 AM
AutoFormatTime : function()

    {

        
      if (this._AutoCompleteValue != "" )

      {

        Mcur = this._AutoCompleteValue.substring(3,2); <---

        // replace to  this._AutoCompleteValue.substring(3,5)

      }

        
    if (this._maskvalid == "99" + this.get_CultureTimePlaceholder()…

      {

        if (this._AutoCompleteValue != "" )

        {

          Scur = this._AutoCompleteValue.substring(5); <-----

        // replace to  this._AutoCompleteValue.substring(6);

        }

 

Go through this link:

its similar to urs:

http://forums.asp.net/t/1084117.aspx

Vikram Singh Saini replied to mostafa hamdy on 09-May-12 07:17 AM
Try this way:

txtEditStartTime.Text = String.Format("{0:t}", act.ActionStartDate.Value.ToShortTimeString());

 
[)ia6l0 iii replied to mostafa hamdy on 09-May-12 10:10 AM
I see that your mask is a four digit mask (99:99), so it would be wise to custom format your time, and assign it to your textbox. 'tt' should show AM/PM.
txtEditStartTime.Text = String.Format("{0:hh:mm tt}",act.ActionStartDate.Value);

And also, you need to set "AcceptAMPM" property to "true" in the markup. And remove the "UserTimeFormat="TwentyFourHour" property.

<ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender10" runat="server" TargetControlID="txtEditStartTime"
Mask="99:99" MessageValidatorTip="true" OnFocusCssClass="MaskedEditFocus" 
OnInvalidCssClass="MaskedEditError" MaskType="Time" DisplayMoney="Left" AcceptNegative="Left" AcceptAMPM="true" ErrorTooltipEnabled="True" />


Hope that helps.