gpt4 book ai didi

asp.net - 是否可以为适用于任何文化的日期格式 MMM-yyyy 设置 MaskedEditExtender 的掩码?

转载 作者:行者123 更新时间:2023-12-03 21:41:35 24 4
gpt4 key购买 nike

正如标题所说,我遇到的问题是,我需要使用短月份名称格式和年份,以便由 AjaxControlToolkit 中的 MaskedEditExtender 验证日期。 DateTime 的 MMM-yyyy 与 MaskedEditExtender.Mask = "LLL-9999"不同。

如果我使用 en-US 语言环境,事情就像魅力一样,但如果我切换到 fr-FR,那么它将不起作用,因为法语中的短月表示使用 4 到 5 个字母(包括点)。

对此有何想法?
谢谢。

最佳答案

这里需要明确定义掩码和掩码类型,而不是在控件本身中声明。

按照步骤

1.创建获取n set mask的方法

公共(public)字符串掩码
{
得到
{
return GetPropertyValue("Mask", "");
}

{

SetPropertyValue("Mask", value);
}
}

2.创建获取n set mask type的方法

public MaskedEditType MaskType
{
得到
{
return GetPropertyValue("MaskType", MaskedEditType.None);
}

{
SetPropertyValue("MaskType", value);

接受AMPM =假;
AcceptNegative = MaskedEditShowSymbol.None;
DisplayMoney = MaskedEditShowSymbol.None;
InputDirection = MaskedEditInputDirection.LeftToRight;
休息;

}
}

3.创建获取文化和文化日期格式的方法

公共(public)字符串 CultureName
{
得到
{
return GetPropertyValue("文化", "");
}

{
尝试
{
if (!String.IsNullOrEmpty(value))
{
System.Globalization.CultureInfo CultControl = System.Globalization.CultureInfo.GetCultureInfo(value);
SetPropertyValue("Culture", CultControl.Name);
CultureDatePlaceholder = CultControl.DateTimeFormat.DateSeparator;

char sep = System.Char.Parse(CultControl.DateTimeFormat.DateSeparator);
string[] arrDate = CultControl.DateTimeFormat.ShortDatePattern.Split(sep);
string ret = arrDate[0].Substring(0, 1).ToUpper(CultControl);
ret += arrDate[1].Substring(0, 1).ToUpper(CultControl);
ret += arrDate[2].Substring(0, 1).ToUpper(CultControl);
CultureDateFormat = ret;

}
别的
{
SetPropertyValue("文化", "");
CultureDatePlaceholder = "";

}
}
捕获
{
throw new ArgumentException("文化无效!");
}
}
}

4.创建获取文化日期格式的方法

公共(public)字符串 CultureDateFormat
{
得到
{
return GetPropertyValue("CultureDateFormat", "");
}

{
SetPropertyValue("CultureDateFormat", value);
}
}

5. 现在在预渲染上加载值

protected override void OnPreRender(EventArgs e)

{
base.OnPreRender(e);
开关(掩码类型)
{
案例 MaskedEditType.Date:
{
接受AMPM =假;
AcceptNegative = MaskedEditShowSymbol.None;
DisplayMoney = MaskedEditShowSymbol.None;
InputDirection = MaskedEditInputDirection.LeftToRight;
休息;
}

}
System.Globalization.CultureInfo CultControl = System.Globalization.CultureInfo.CurrentCulture;
if (!String.IsNullOrEmpty(CultureName))
{
CultControl = System.Globalization.CultureInfo.GetCultureInfo(CultureName);
}
CultureDatePlaceholder = CultControl.DateTimeFormat.DateSeparator;

char sep = System.Char.Parse(CultControl.DateTimeFormat.DateSeparator);
string[] arrDate = CultControl.DateTimeFormat.ShortDatePattern.Split(sep);
string ret = arrDate[0].Substring(0, 1).ToUpper(CultControl);
ret += arrDate[1].Substring(0, 1).ToUpper(CultControl);
ret += arrDate[2].Substring(0, 1).ToUpper(CultControl);
CultureDateFormat = ret;

}

6. 最后创建一个函数来验证用户输入

private bool validateMaskType()
{
字符串掩码 = 掩码;
MaskedEditType maskType = MaskType;
if (!string.IsNullOrEmpty(mask) && (maskType == MaskedEditType.Date))
{
string validMask = MaskedEditCommon.GetValidMask(mask);
开关(掩码类型)
{
案例 MaskedEditType.Date:
return Array.IndexOf(new string[] { "99/99/9999", "99/9999/99", "9999/99/99", "99/99/99"}, validMask) >= 0;

休息;
}
}
返回真;
}

关于asp.net - 是否可以为适用于任何文化的日期格式 MMM-yyyy 设置 MaskedEditExtender 的掩码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7444592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com