我需要为瑞典日期创建MaskedEditExtender
,使用格式“yyyy-MM-dd”。
我在下面有以下代码。 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 :(得分:1)
让我在日历格式属性上使用yyyy/MM/dd
工作,从蒙版扩展器中删除文化,并在页面加载时使用
system.threading.thread.currentthread.currentculture =
system.globalization.cultureinfo.invariantculture
希望它有所帮助。
答案 1 :(得分:0)
当我在后面的代码中设置掩码时(txtFSFV.Mask =“9999/99/99”;)。所以问题似乎与日期分隔符始终(“/”)和CultureInfo“sv-SE”正确地设置为“yyyy-MM-dd”
答案 2 :(得分: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;
}
希望这有帮助