国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net MaxLengthValidator 最大長度驗證控件代碼

2024-07-10 12:42:50
字體:
供稿:網(wǎng)友
代碼如下:
/// <summary>
/// TextBox的最大長度驗證器,如果是varchar,char字段類型,需要此驗證
/// </summary>
[Description("對MaxLength進(jìn)行驗證")]
[ToolboxData("<{0}:MaxLengthValidator runat=server></{0}:MaxLengthValidator>")]
public class MaxLengthValidator : BaseValidator
{
/// <summary>
/// 獲取或設(shè)置是否為非nvarchar,nchar字段驗證
/// </summary>
[DefaultValue(true)]
public bool ValidateForNonNationalField
{
get
{
var data = this.ViewState["ValidateForNonNationalField"];
if (data == null)
{
return true;
}
else
{
return (bool)data;
}
}
set
{
this.ViewState["ValidateForNonNationalField"] = value;
}
}

/// <summary>
/// 構(gòu)造函數(shù)
/// </summary>
public MaxLengthValidator()
{
this.ValidateForNonNationalField = true;
}

protected override bool EvaluateIsValid()
{
var targetControlName = this.ControlToValidate;
if (targetControlName == null)
{
//沒有目標(biāo)驗證控件,驗證通過
return true;
}

var targetControl = this.NamingContainer.FindControl(targetControlName) as TextBox;
if (targetControl == null)
{
//目標(biāo)控件不是文本框或不存在,驗證通過
return true;
}

var maxLength = targetControl.MaxLength;
var targetValue = this.GetControlValidationValue(targetControlName);
var targetLength = 0;
if (string.IsNullOrEmpty(targetValue))
{
targetLength = 0;
}
else
{
if (this.ValidateForNonNationalField)
{
targetLength = this.GetLengthForNonNationnal(targetValue);
}
else
{
targetLength = targetValue.Length;
}
}

return targetLength <= maxLength;
}

/// <summary>
/// 獲得保存為Varchar時,text的長度
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
public virtual int GetLengthForNonNationnal(string text)
{
if (string.IsNullOrEmpty(text))
{
return 0;
}

var length = 0;
for (var i = 0; i < text.ToCharArray().Length; i++)
{
var charCode = (int)text[i];

length++;
if (charCode > 255)
{
length++;
}
}
return length;
}

protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);

if (this.RenderUplevel)
{
writer.AddAttribute("TargetControlID",
this.GetControlRenderID(this.ControlToValidate));
writer.AddAttribute("ValidateForNonNationalField",
this.ValidateForNonNationalField ? "true" : "false");
writer.AddAttribute("evaluationfunction",
"MaxLengthValidator_Validate");

var targetControl = this.NamingContainer.FindControl(this.ControlToValidate) as TextBox;
if (targetControl != null)
{
var maxLength = targetControl.MaxLength;
writer.AddAttribute("maxlength",
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 封开县| 合阳县| 绥滨县| 甘德县| 新兴县| 威信县| 江山市| 墨脱县| 京山县| 西安市| 江口县| 平凉市| 织金县| 仁怀市| 临沂市| 贵南县| 兴山县| 盐山县| 泰安市| 运城市| 汝城县| 中超| 霍州市| 西安市| 会宁县| 吉水县| 三台县| 彩票| 水富县| 公安县| 山阴县| 房产| 兰州市| 宁都县| 西吉县| 菏泽市| 宁乡县| 宁津县| 新津县| 河源市| 卫辉市|