zoukankan
html css js c++ java
无刷新方式校验数据库内容的验证控件
DOTNET里的验证框架确实很方便,对于一些表单的填写的基本验证,比如必填验证,正则验证等都能很好的处理,外还保证了服务器端的验证,真所谓省事又省心。也有些情况下需要验证些比较复杂的逻辑,比如选了某个选项,就必须填写某个文本框的内容,这种情况下,DOTNET也提供了扩展,有个Customvalidator可以解决。而对于某些内容需要到数据库里验证下的,显然光靠客户端是不能实现的,用Cusomvalidator的服务器端验证确实可以实现,但是需要来回刷新那么一遍,当然有些烦人。因此弄了个自定义的验证控件,简单摆弄了一下,整出了个
DataBaseContentValidator
。主要技术还是利用
ICallbackEventHandler实现无刷新操作
,只不过这次还继承了个
BaseValidator。最终用起来跟一般的验证控件没什么差别,也是由于继承了
BaseValidator
的原因。
具体请看
DataBaseContentValidator
用法:实现
ValidateContent
事件,然后设置事件参数的IsValid属性
aspx
1
<
asp:TextBox
ID
="dafd"
runat
="server"
></
asp:TextBox
>
2
<
cc1:DataBaseContentValidator
runat
="server"
ID
="dataBaseContentValidator1"
Display
="Dynamic"
3
ErrorMessage
="不存在该供应商"
OnValidateContent
="dataBaseContentValidator1_ValidateContent"
4
SetFocusOnError
="True"
ControlToValidate
="dafd"
EnableClientScript
="False"
></
cc1:DataBaseContentValidator
>
5
<
asp:Button
ID
="btn"
runat
="server"
Text
="check"
OnClick
="btn_Click1"
/>
CSharp
1
/**/
///
<summary>
2
///
ValidateContent事件
3
///
</summary>
4
///
<param name="sender"></param>
5
///
<param name="e"></param>
6
protected
void
dataBaseContentValidator1_ValidateContent(
object
sender, Shenba.CustomControl.DataBaseContentValidator.ValidateArgs e)
7
{
8
int
recCount
=
0
;
9
using
(SqlConnection con
=
new
SqlConnection(conString))
10
{
11
SqlCommand command
=
new
SqlCommand(
"
select count('a') from suppliers1 where CompanyName = @name
"
, con);
12
command.Parameters.Add(
new
SqlParameter(
"
@name
"
, e.Value));
13
con.Open();
14
recCount
=
(
int
)command.ExecuteScalar();
15
}
16
17
//
根据结果设置参数的IsValid属性
18
e.IsValid
=
recCount
>
Decimal.Zero;
19
}
20
21
protected
void
btn_Click1(
object
sender, EventArgs e)
22
{
23
if
(Page.IsValid)
24
{
25
if
(
!
Page.ClientScript.IsStartupScriptRegistered(
"
Pass
"
))
26
{
27
Page.ClientScript.RegisterStartupScript(GetType(),
"
Pass
"
,
"
alert('Pass');
"
,
true
);
28
}
29
}
30
}
查看全文
相关阅读:
微软发布了Java Lang Conversion Asst 3.0测试版
关于GC的使用
增加了简单的搜索功能
[推荐]TreeView专题讨论
我是这样过大年初一的!
[推荐]动态加载类(在程序中调用DLL文件)
请大家正确填写自己的邮件地址
Microsoft Win32 to Microsoft .NET Framework API Map
奇怪的问题
发表含有HTML代码的文章时,请保持HTML代码的完整
原文地址:https://www.cnblogs.com/shenba/p/1045479.html
最新文章
笔记本常用测试软件
Delphi 与 DirectX 之 DelphiX(36): TDIB.Contrast();
Delphi 与 DirectX 之 DelphiX(41): TDIB.SplitBlur();
Delphi 与 DirectX 之 DelphiX(39): TDIB.Sharpen();
Delphi 与 DirectX 之 DelphiX(34): TDIB.Lightness();
Delphi 与 DirectX 之 DelphiX(40): TDIB.Rotate();
Delphi 与 DirectX 之 DelphiX(42): TDIB.GaussianBlur();
Delphi 与 DirectX 之 DelphiX(35): TDIB.Saturation();
Delphi 与 DirectX 之 DelphiX(38): TDIB.Filter();
Delphi 与 DirectX 之 DelphiX(37): TDIB.AddRGB();
热门文章
Delphi 与 DirectX 之 DelphiX(43): TDIB.DoInvert;
如何发布公告
关于改进插入图片功能的想法
现在可以插入MSN表情了
今天开始上班了
ServerVariables["LOGON_USER"]在.NET Framework 1.1中不支持中文用户名的问题
推荐一个Blog桌面工具blogjet
在Windows下运行UNIX程序
DataGrid, DataList and Repeater
推荐一篇用Blog开发企业信息系统的文章
Copyright © 2011-2022 走看看