2011-07-14 43 views
1

我需要为使用格式“yyyy-MM-dd”的瑞典日期创建MaskedEditExtenderMaskedEditExtender日历格式问题与日历控制

我在下面有下面的代码。 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" /> 

有谁告诉我怎么可以创建一个面具("yyyy-MM-dd")为SV-SE文化?

回答

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; 
    } 

希望这有助于