2011-07-14 53 views
1

"yyyy-MM-dd"形式を使用するスウェーデンの日付の場合、MaskedEditExtenderを作成する必要があります。カレンダーコントロールでのMaskedEditExtender日付形式の問題

私は下に次のコードを持っています。 CalendarExtenderは現在のMaskedEditExtenderでは動作しません。また、検証が正しく機能しません。

<asp:TextBox ID="txtFSFV" 
     MaxLength="100" 
     style="width:70px" 
     runat="server" /> 
<asp:HyperLink ID="hplGetCalendar" 
     NavigateUrl="javascript:void(null)" 
     runat="server"> 
     <img src="~/images/calendar.png" runat="server" /> 
</asp:HyperLink> 
<ajax:CalendarExtender ID="calFSFV" 
     Format="yyyy-MM-dd" 
     Animated="false" 
     PopupButtonID="hplGetCalendar" 
     TargetControlID="txtFSFV" 
     runat="server" /> 
<ajax:MaskedEditExtender 
     ID="maskedFSFV" 
     TargetControlID="txtFSFV" 
     Mask="9999-99-99" 
     MessageValidatorTip="true" 
     OnFocusCssClass="MaskedEditFocus" 
     OnInvalidCssClass="MaskedEditError" 
     MaskType="Date" 
     Century="2000" 
     CultureName="sv-SE" 
     UserDateFormat="YearMonthDay" 
     InputDirection="LeftToRight" 
     runat="server"/> 
<ajax:MaskedEditValidator ID="MaskedEditValidator1" 
     runat="server" 
     ControlExtender="maskedFSFV" 
     ControlToValidate="txtFSFV" 
     InvalidValueMessage="Date is invalid" 
     IsValidEmpty="True" /> 

誰もが、私はSV-SE培養用マスク("yyyy-MM-dd")を作成する方法を教えてもらえますか?

答えて

0

マスクをコードの背後に設定すると機能します(txtFSFV.Mask = "9999/99/99";)。だから問題は日付セパレータ( "/")に接続されているようで、CultureInfo "sv-SE"は "yyyy-MM-dd"に正しく設定されています

1

カレンダーフォーマットのプロパティでyyyy/MM/dd、マスクされたエクステンダーおよびページの負荷から培養物を取り除く。

system.threading.thread.currentthread.currentculture =  
system.globalization.cultureinfo.invariantculture 

ホープが役立つことを望む。

0

グリッドビューで日付書式を変更しようとして数時間戦ってしまいましたが、新しいデータセットを作成して既存のデータセットからクローンを作成しました。作成されたデータセット。また、Global.asaxファイル(コードを参照)を使用して正しいカルチャを設定することを忘れないでください。これは

DataSet ds = new DataSet(); 
     try 
     { 
      ds = new DataSet(); 
      if (filterRateDiary.LoadAll()) 
      { 
       DataView dv = filterRateDiary.DefaultView; 
       DataTable dt = dv.Table; 
       ds.Tables.Add(dt); 

       DataSet ds2 = ds.Clone(); 
       ds2.Tables[0].Columns["ExpiryDate"].DataType = Type.GetType("System.DateTime"); 
       ds2.Tables[0].Columns["EffectiveDate"].DataType = Type.GetType("System.DateTime"); 
       foreach (DataRow row in ds.Tables[0].Rows) 
       { 
        ds2.Tables[0].ImportRow(row); 
       } 
       return ds2; 
      } 

は、その後、あなたのGlobal.asaxファイルに

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     CultureInfo newCulture = (CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone(); 
     newCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd"; 
     newCulture.DateTimeFormat.LongDatePattern = "yyyy-MM-dd HH:mm:ss.fff"; 
     newCulture.DateTimeFormat.DateSeparator = "-"; 
     Thread.CurrentThread.CurrentCulture = newCulture; 
    } 

が、これは

を役に立てば幸い、次のコードを追加します。お役に立てば幸いです