zoukankan
html css js c++ java
一个Page页面多个CheckBoxList的客户端验证(.net1.1及2.0实现)
一,基于.net1.1
1、类文件
using
System;
using
System.Web.UI;
using
System.Web;
using
System.Web.UI.WebControls;
using
System.Text;
namespace
AgrExibition.Common.Framework.Util
...
{
欢迎与邀月交流,net技术与软件架构
2007/07/26
#region
downmoon 2007/07/26
/**/
///
<summary>
///
一个Page页面多个CheckBoxList的客户端验证(.net1.1实现)(downmoon)
///
</summary>
#endregion
public
class
RadioButtonListRequiredFieldValidator : BaseValidator
...
{
protected
override
bool
ControlPropertiesValid()
...
{
return
true
;
}
protected
override
bool
EvaluateIsValid()
...
{
return
this
.EvaluateIsChecked();
}
protected
bool
EvaluateIsChecked()
...
{
ListControl _listcontrol
=
((ListControl)
this
.FindControl(
this
.ControlToValidate));
foreach
( ListItem li
in
_listcontrol.Items )
...
{
if
(li.Selected)
return
true
;
}
return
false
;
}
protected
override
void
OnPreRender( EventArgs e )
...
{
if
(
this
.EnableClientScript )
...
{
this
.ClientScript(); }
base
.OnPreRender( e );
}
protected
void
ClientScript()
...
{
this
.Attributes[
"
evaluationfunction
"
]
=
"
cb_vefify
"
;
StringBuilder sb_Script
=
new
StringBuilder();
sb_Script.Append(
"
<script language="javascript">
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
function cb_vefify(val) {
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
var val =document.getElementById(val.controltovalidate);
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
var col = val.all;
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
if ( col != null ) {
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
for ( i = 0; i < col.length; i++ ) {
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
if (col.item(i).tagName.toUpperCase() == "INPUT") {
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
if ( col.item(i).checked ) {
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
return true;
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
}
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
}
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
}
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
return false;
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
}
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
}
"
);
sb_Script.Append(
"
"
);
sb_Script.Append(
"
</script>
"
);
if
(
!
this
.Page.IsClientScriptBlockRegistered(
"
RBLScript
"
))
...
{
this
.Page.RegisterClientScriptBlock(
"
RBLScript
"
, sb_Script.ToString() );
}
}
}
}
2、页面
<%
...
@ Register TagPrefix
=
"
AgrExibition
"
Namespace
=
"
AgrExibition.Common.Framework.Util
"
Assembly
=
"
AgrExibition.Common.Framework
"
%>
<
asp:CheckBoxList
id
="cbB_Property"
runat
="server"
RepeatDirection
="Horizontal"
RepeatColumns
="3"
>
<
asp:ListItem
Value
="1"
>
投资商
</
asp:ListItem
>
<
asp:ListItem
Value
="2"
>
投资促进机构
</
asp:ListItem
>
<
asp:ListItem
Value
="3"
>
代理商
</
asp:ListItem
>
<
asp:ListItem
Value
="4"
>
科研及信息单位协会
</
asp:ListItem
>
<
asp:ListItem
Value
="5"
>
零售商
</
asp:ListItem
>
<
asp:ListItem
Value
="6"
>
批发商
</
asp:ListItem
>
<
asp:ListItem
Value
="7"
>
仓储业
</
asp:ListItem
>
<
asp:ListItem
Value
="8"
>
跨国公司
</
asp:ListItem
>
<
asp:ListItem
Value
="9"
>
进出口商
</
asp:ListItem
>
<
asp:ListItem
Value
="10"
>
生产商
</
asp:ListItem
>
<
asp:ListItem
Value
="11"
>
超市
</
asp:ListItem
>
<
asp:ListItem
Value
="12"
>
酒店
</
asp:ListItem
>
<
asp:ListItem
Value
="13"
>
宾馆及后勤服务
</
asp:ListItem
>
<
asp:ListItem
Value
="-1"
>
其他
</
asp:ListItem
>
</
asp:CheckBoxList
>
<
asp:TextBox
id
="txtB_Property"
Runat
="Server"
CssClass
="input2"
Width
="400px"
/>
<
AgrExibition:RADIOBUTTONLISTREQUIREDFIELDVALIDATOR
id
="rbValid1"
Display
="Dynamic"
ErrorMessage
="请选择或输入业务性质!"
runat
="server"
ControlToValidate
="cbB_Property"
Text
="*"
>
*
</
AgrExibition:RADIOBUTTONLISTREQUIREDFIELDVALIDATOR
>
<
br
/>
<
asp:CheckBoxList
id
="cbPurpose"
runat
="server"
RepeatDirection
="Horizontal"
RepeatColumns
="3"
>
<
asp:ListItem
Value
="1"
>
采购产品
</
asp:ListItem
>
<
asp:ListItem
Value
="2"
>
搜集市场信息
</
asp:ListItem
>
<
asp:ListItem
Value
="3"
>
与业务伙伴会面
</
asp:ListItem
>
<
asp:ListItem
Value
="4"
>
了解行业动向
</
asp:ListItem
>
<
asp:ListItem
Value
="5"
>
观看观摩
</
asp:ListItem
>
<
asp:ListItem
Value
="6"
>
投资项目洽谈
</
asp:ListItem
>
<
asp:ListItem
Value
="7"
>
获取行业信息
</
asp:ListItem
>
<
asp:ListItem
Value
="8"
>
寻找供应商或买家
</
asp:ListItem
>
<
asp:ListItem
Value
="-1"
>
其他
</
asp:ListItem
>
</
asp:CheckBoxList
>
<
asp:TextBox
id
="txtPurpose"
Runat
="Server"
CssClass
="input2"
Width
="400px"
/>
<
AgrExibition:RADIOBUTTONLISTREQUIREDFIELDVALIDATOR
id
="rbValid2"
Display
="Dynamic"
ErrorMessage
="请选择或输入参会目的!"
runat
="server"
ControlToValidate
="cbPurpose"
Text
="*"
>
*
</
AgrExibition:RADIOBUTTONLISTREQUIREDFIELDVALIDATOR
>
<
asp:ValidationSummary
id
="ValidationSummary1"
runat
="server"
ShowMessageBox
="True"
ShowSummary
="False"
HeaderText
="请检查输入表单内容:"
></
asp:ValidationSummary
>
二、基于.net 2.0
1、类文件
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Text;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
namespace
ShiXun.Commoon.Web.Validor
...
{
欢迎与邀月交流,net技术与软件架构
2007/07/26
#region
downmoon 2007/07/26
/**/
///
<summary>
///
一个Page页面多个CheckBoxList的客户端验证(.net2.0实现)(downmoon)
///
</summary>
#endregion
[DefaultProperty(
"
ErrorMessage
"
), ToolboxData(
"
<{0}:ListControlRequiredFieldValidator runat=server></{0}:ListControlRequiredFieldValidator>
"
)]
public
class
ListControlRequiredFieldValidator : BaseValidator
...
{
/**/
///
<summary>
///
Validator Requirement
///
</summary>
///
<returns>
True if dependencies are valid.
</returns>
protected
override
bool
ControlPropertiesValid()
...
{
Control controlToValidate
=
FindControl(ControlToValidate)
as
ListControl;
return
(controlToValidate
!=
null
);
}
/**/
///
<summary>
///
Validator Requirement
///
</summary>
///
<returns>
true if ControlToValidate
///
has one item or more selected
</returns>
protected
override
bool
EvaluateIsValid()
...
{
return
this
.EvaluateIsChecked();
}
/**/
///
<summary>
///
Return true if an item in the list is selected.
///
</summary>
///
<returns>
true if ControlToValidate
///
has one item or more selected
</returns>
protected
bool
EvaluateIsChecked()
...
{
ListControl listToValidate
=
((ListControl)
this
.FindControl(
this
.ControlToValidate));
foreach
(ListItem li
in
listToValidate.Items)
...
{
if
(li.Selected
==
true
)
return
true
;
}
return
false
;
}
/**/
///
<summary>
///
Pre Render
///
</summary>
///
<param name="e"></param >
protected
override
void
OnPreRender(EventArgs e)
...
{
System.Web.HttpContext.Current.Trace.Write(
"
Override OnPreRender
"
);
if
(
this
.DetermineRenderUplevel()
&&
this
.EnableClientScript)
...
{
Page.ClientScript.RegisterExpandoAttribute(
this
.ClientID,
"
evaluationfunction
"
,
"
ListItemVerify
"
);
Page.ClientScript.RegisterExpandoAttribute(
this
.ClientID,
"
minimumNumberOfSelectedCheckBoxes
"
,
"
1
"
);
//
System.Web.UI.Page.(this.ClientID, "evaluationfunction", "ListItemVerify");
//
Page.ClientScript.RegisterExpandoAttribute(this.ClientID, "minimumNumberOfSelectedCheckBoxes", "1");
//
TODO: imporove to allow variable number.
this
.RegisterClientScript();
}
else
...
{
this
.Attributes.Remove(
"
evaluationfunction
"
);
}
base
.OnPreRender(e);
}
/**/
///
<summary>
///
Register the client script.
///
</summary>
protected
void
RegisterClientScript()
...
{
string
script
=
@"
<script language=""javascript"">
function ListItemVerify(val)
{
var control = document.getElementById(val.controltovalidate);
var minimumNumberOfSelectedCheckBoxes = parseInt(val.minimumNumberOfSelectedCheckBoxes);
var selectedItemCount = 0;
var liIndex = 0;
var currentListItem = document.getElementById(control.id + '_' + liIndex.toString());
while (currentListItem != null)
{
if (currentListItem.checked) selectedItemCount++;
liIndex++;
currentListItem = document.getElementById(control.id + '_' + liIndex.toString());
}
return selectedItemCount >= minimumNumberOfSelectedCheckBoxes;
}
</script>
"
;
this
.Page.ClientScript.RegisterClientScriptBlock(
typeof
(ListControlRequiredFieldValidator),
"
ListRequiredValidator_Script
"
, script);
}
}
}
2、页面
<%
...
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
Default.aspx.cs
"
Inherits
=
"
_Default
"
%>
<%
...
@ Register TagPrefix
=
"
ShiXun
"
NameSpace
=
"
ShiXun.Commoon.Web.Validor
"
Assembly
=
"
ShiXun.Commoon.Web.Validor
"
%>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
runat
="server"
>
<
title
>
无标题页
</
title
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
asp:CheckBoxList
id
="cbB_Property"
runat
="server"
RepeatDirection
="Horizontal"
RepeatColumns
="3"
>
<
asp:ListItem
Value
="1"
>
投资商
</
asp:ListItem
>
<
asp:ListItem
Value
="2"
>
投资促进机构
</
asp:ListItem
>
<
asp:ListItem
Value
="3"
>
代理商
</
asp:ListItem
>
<
asp:ListItem
Value
="4"
>
科研及信息单位协会
</
asp:ListItem
>
<
asp:ListItem
Value
="5"
>
零售商
</
asp:ListItem
>
<
asp:ListItem
Value
="6"
>
批发商
</
asp:ListItem
>
<
asp:ListItem
Value
="7"
>
仓储业
</
asp:ListItem
>
<
asp:ListItem
Value
="8"
>
跨国公司
</
asp:ListItem
>
<
asp:ListItem
Value
="9"
>
进出口商
</
asp:ListItem
>
<
asp:ListItem
Value
="10"
>
生产商
</
asp:ListItem
>
<
asp:ListItem
Value
="11"
>
超市
</
asp:ListItem
>
<
asp:ListItem
Value
="12"
>
酒店
</
asp:ListItem
>
<
asp:ListItem
Value
="13"
>
宾馆及后勤服务
</
asp:ListItem
>
<
asp:ListItem
Value
="-1"
>
其他
</
asp:ListItem
>
</
asp:CheckBoxList
>
<
ShiXun:ListControlRequiredFieldValidator
ControlToValidate
="cbB_Property"
display
="Dynamic"
ErrorMessage
="至少选择一项!"
EnableClientScript
="true"
runat
="Server"
>
至少选择一项
</
ShiXun:ListControlRequiredFieldValidator
>
<
br
/>
<
br
/>
<
asp:CheckBoxList
ID
="cbPurpose"
runat
="server"
RepeatColumns
="3"
RepeatDirection
="Horizontal"
>
<
asp:ListItem
Value
="1"
>
采购产品
</
asp:ListItem
>
<
asp:ListItem
Value
="2"
>
搜集市场信息
</
asp:ListItem
>
<
asp:ListItem
Value
="3"
>
与业务伙伴会面
</
asp:ListItem
>
<
asp:ListItem
Value
="4"
>
了解行业动向
</
asp:ListItem
>
<
asp:ListItem
Value
="5"
>
观看观摩
</
asp:ListItem
>
<
asp:ListItem
Value
="6"
>
投资项目洽谈
</
asp:ListItem
>
<
asp:ListItem
Value
="7"
>
获取行业信息
</
asp:ListItem
>
<
asp:ListItem
Value
="8"
>
寻找供应商或买家
</
asp:ListItem
>
<
asp:ListItem
Value
="-1"
>
其他
</
asp:ListItem
>
</
asp:CheckBoxList
>
<
ShiXun:ListControlRequiredFieldValidator
ControlToValidate
="cbPurpose"
display
="Dynamic"
ErrorMessage
="至少选择一项!"
EnableClientScript
="true"
runat
="Server"
>
至少选择一项
</
ShiXun:ListControlRequiredFieldValidator
>
<
br
/>
<
asp:CheckBoxList
ID
="cbChannel"
runat
="server"
RepeatColumns
="3"
RepeatDirection
="Horizontal"
>
<
asp:ListItem
Value
="1"
>
报纸等平面媒体
</
asp:ListItem
>
<
asp:ListItem
Value
="2"
>
网络
</
asp:ListItem
>
<
asp:ListItem
Value
="3"
>
电视
</
asp:ListItem
>
<
asp:ListItem
Value
="4"
>
朋友介绍
</
asp:ListItem
>
<
asp:ListItem
Value
="5"
>
客户推荐
</
asp:ListItem
>
<
asp:ListItem
Value
="-1"
>
其他
</
asp:ListItem
>
</
asp:CheckBoxList
>
<
ShiXun:ListControlRequiredFieldValidator
ControlToValidate
="cbChannel"
display
="Dynamic"
ErrorMessage
="至少选择一项!"
EnableClientScript
="true"
runat
="Server"
>
至少选择一项
</
ShiXun:ListControlRequiredFieldValidator
>
<
asp:TextBox
ID
="txtSourceChannel"
runat
="Server"
CssClass
="input2"
Width
="400px"
></
asp:TextBox
>
<
br
/>
<
br
/>
<
br
/>
<
asp:Button
ID
="Button1"
runat
="server"
Text
="Button"
/>
</
form
>
</
body
>
</
html
>
邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
助人等于自助!
3w@live.cn
查看全文
相关阅读:
阿蒂亚谈数学——我对《数学的统一性》的笔记
陶哲轩实分析习题8.5.6
陶哲轩实分析习题8.5.2
陶哲轩实分析习题8.5.9
陶哲轩实分析习题8.5.5
陶哲轩实分析习题8.5.6
陶哲轩实分析习题8.5.2
陶哲轩实分析习题8.5.1
陶哲轩实分析习题8.5.9
陶哲轩实分析习题8.5.5
原文地址:https://www.cnblogs.com/downmoon/p/1020089.html
最新文章
验证码
主表关联字表,主表自增长,同时插入
log4net用法
设计模式之 七(Adapter)
SQL常用分页存储过程
源码下载
设计模式(八) 单例设计模式
c#权限管理动态增加menu及时间
sql中delete触发器
C#datagridView中嵌套控件
热门文章
hdu 3047(带权并查集)
hdu 1558(线段相交+并查集)
hdu 3038(带权并查集)
hdu 2144(LCS+并查集)
hdu 3938(离线的并查集)
hdu 4263(有限制的生成树)
hdu 2120(并查集判环)
hdu 2860(并查集应用)
hdu 2818(带权并查集)
hdu 4126(prim+树形dp)
Copyright © 2011-2022 走看看