问题描述
您好,亲爱的开发人员,我有2个文本框,我要检查字符串长度(超过2个字符)和要求.问题是我不能将此服务器端验证放在页面后面的代码中,而是应该调用一个应在项目的BLL文件中创建的函数.我知道如何在后面的代码中对此进行验证,但是在另一个文件中创建此类函数并调用它给我带来了麻烦.任何帮助将不胜感激.谢谢.
N.B:
这是我为2个文本框创建的2个customValidator后面的代码中的验证函数:
受保护的 void LNCustomValidator_ServerValidate(对象源,ServerValidateEventArgs参数) { 如果(LNameText.Text.Length < 2 跨度>) { args.IsValid = false ; lblLnameValid.Visible = true ; } 其他 { args.IsValid = true ; lblLnameValid.Visible = false ; } }
受保护的 无效 FNCustomValidator_ServerValidate(对象源,ServerValidateEventArgs参数) { 如果(FNameText.Text.Length == 1 ) { args.IsValid = false ; lblFnameValid.Visible = true ; EmpDataView.Visible = false ; } 其他 { args.IsValid = true ; lblFnameValid.Visible = false ; } }
我还对输入的字符进行了验证,即仅允许使用字母字符.为此,我对两个文本框的Textchanged事件执行了以下操作:
受保护的 无效 LNameText_TextChanged(对象发件人,EventArgs e) { 字符串 oldText = 字符串 .Empty; 如果(LNameText.Text.All(chr = > char .IsLetter(chr))) { oldText = LNameText.Text; LNameText.Text = oldText; LNameText.BorderColor = System.Drawing.Color.Empty; LNameText.ForeColor = System.Drawing.Color.Black; LNCustomValidator.Text = " 请输入至少2个字符" ; } 其他 { LNameText.Text = oldText; LNameText.BorderColor = System.Drawing.Color.Red; LNameText.ForeColor = System.Drawing.Color.Black; lblLnameValid.Visible = true ; LNCustomValidator.Text = " 仅字母字符" ; } }
受保护的 无效 FNameText_TextChanged(对象发件人,EventArgs e) { 字符串 oldText = 字符串 .Empty; 如果(FNameText.Text.All(chr = > char .IsLetter(chr))) { oldText = FNameText.Text; FNameText.Text = oldText; FNameText.BorderColor = System.Drawing.Color.Empty; FNameText.ForeColor = System.Drawing.Color.Black; FNCustomValidator.Text = " 名字搜索必须包含至少2个字符" ; } 其他 { FNameText.Text = oldText; FNameText.BorderColor = System.Drawing.Color.Red; FNameText.ForeColor = System.Drawing.Color.Black; lblFnameValid.Visible = true ; FNCustomValidator.Text = " 仅字母字符" ; } }
有什么建议吗? (从一个函数执行此验证,我应该在一个称为业务逻辑层"的文件中调用该函数).
要满足这两个要求,无需使用自定义验证"控件..
-只需在.aspx
的<script type="text/javascript">
标记中添加以下功能-在
中写入标签onblur="return isValidLengh();" & onkeypress="return isAlphabet(event);"
LnameText文本框...
函数 isAlphabet(evt){ var charCode =(evt.which)吗? evt.which:event.keyCode; 如果(((charCode> 96 && charCode< 123 )||(charCode> 64 && charCode< 91 )) 返回 真; 返回 假; }
函数 isValidLength(){ var tb = 文档 .getElementById(' <%= LNameText.ClientID%>'); 如果(tb!= 空){ 如果(tb.value.length< 3){ alert(" 至少需要两个字符" ); tb.focus(); 返回 假; } 返回 真; } }
Hi Dear developers, I am having 2 textboxes which I want to check for string lenght (more than 2 characters) and for requirement. the problem is that I can''t put this server-side validation in code behind of my page, instead I should call a function I should create in BLL file in my project. I know how to validate this on code behind, but creating such a function in another file and call it is giving me a hard time. Any help would be grateful. Thanks.
N.B:
here is my validation functions in code behind for 2 customValidators i''ve created for the 2 textboxes:
protected void LNCustomValidator_ServerValidate(object source, ServerValidateEventArgs args) { if (LNameText.Text.Length < 2) { args.IsValid = false; lblLnameValid.Visible = true; } else { args.IsValid = true; lblLnameValid.Visible = false; } }
protected void FNCustomValidator_ServerValidate(object source, ServerValidateEventArgs args) { if (FNameText.Text.Length == 1) { args.IsValid = false; lblFnameValid.Visible = true; EmpDataView.Visible = false; } else { args.IsValid = true; lblFnameValid.Visible = false; } }
I have also made a validation on characters entered, i.e. only alphabetical ones are allowed. For this I have done this on Textchanged events of the 2 textboxes like this:
protected void LNameText_TextChanged(object sender, EventArgs e) { string oldText = string.Empty; if (LNameText.Text.All(chr => char.IsLetter(chr))) { oldText = LNameText.Text; LNameText.Text = oldText; LNameText.BorderColor = System.Drawing.Color.Empty; LNameText.ForeColor = System.Drawing.Color.Black; LNCustomValidator.Text = "Please enter at least 2 characters"; } else { LNameText.Text = oldText; LNameText.BorderColor = System.Drawing.Color.Red; LNameText.ForeColor = System.Drawing.Color.Black; lblLnameValid.Visible = true; LNCustomValidator.Text = "Only alphabetical characters"; } }
protected void FNameText_TextChanged(object sender, EventArgs e) { string oldText = string.Empty; if (FNameText.Text.All(chr => char.IsLetter(chr))) { oldText = FNameText.Text; FNameText.Text = oldText; FNameText.BorderColor = System.Drawing.Color.Empty; FNameText.ForeColor = System.Drawing.Color.Black; FNCustomValidator.Text = "First Name search must contain at least 2 characters"; } else { FNameText.Text = oldText; FNameText.BorderColor = System.Drawing.Color.Red; FNameText.ForeColor = System.Drawing.Color.Black; lblFnameValid.Visible = true; FNCustomValidator.Text = "Only alphabetical characters"; } }
Any suggestion? (do this validation from a function I should call in a file called Business Logic Layer)
这篇关于来自业务逻辑层的服务器端验证功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!