一个Page页面多个CheckBoxList的客户端验证(.net1.1及2.0实现)(downmoon)

一,基于.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#regiondownmoon2007/07/26
/**////<summary>
///一个Page页面多个CheckBoxList的客户端验证(.net1.1实现)(downmoon)
///</summary>

#endregion

publicclassRadioButtonListRequiredFieldValidator:BaseValidator
...{

protectedoverrideboolControlPropertiesValid()
...{
returntrue;
}


protectedoverrideboolEvaluateIsValid()
...{
returnthis.EvaluateIsChecked();
}

protectedboolEvaluateIsChecked()
...{
ListControl_listcontrol
=((ListControl)this.FindControl(this.ControlToValidate));
foreach(ListItemliin_listcontrol.Items)
...{
if(li.Selected)returntrue;
}

returnfalse;
}


protectedoverridevoidOnPreRender(EventArgse)
...{

if(this.EnableClientScript)...{this.ClientScript();}
base.OnPreRender(e);

}


protectedvoidClientScript()
...{
this.Attributes["evaluationfunction"]="cb_vefify";

StringBuildersb_Script
=newStringBuilder();
sb_Script.Append(
"<scriptlanguage="javascript">");
sb_Script.Append(
" ");
sb_Script.Append(
" ");
sb_Script.Append(
"functioncb_vefify(val){");
sb_Script.Append(
" ");
sb_Script.Append(
"varval=document.getElementById(val.controltovalidate);");
sb_Script.Append(
" ");
sb_Script.Append(
"varcol=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(
"returntrue;");
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(
"returnfalse;");
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、页面

<% ... @RegisterTagPrefix="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#regiondownmoon2007/07/26
/**////<summary>
///一个Page页面多个CheckBoxList的客户端验证(.net2.0实现)(downmoon)
///</summary>

#endregion


[DefaultProperty(
"ErrorMessage"),ToolboxData("<{0}:ListControlRequiredFieldValidatorrunat=server></{0}:ListControlRequiredFieldValidator>")]
publicclassListControlRequiredFieldValidator:BaseValidator
...{
/**////<summary>
///ValidatorRequirement
///</summary>

///<returns>Trueifdependenciesarevalid.</returns>

protectedoverrideboolControlPropertiesValid()
...{
ControlcontrolToValidate
=FindControl(ControlToValidate)asListControl;
return(controlToValidate!=null);
}


/**////<summary>
///ValidatorRequirement
///</summary>
///<returns>trueifControlToValidate
///hasoneitemormoreselected</returns>


protectedoverrideboolEvaluateIsValid()
...{
returnthis.EvaluateIsChecked();
}


/**////<summary>
///Returntrueifaniteminthelistisselected.
///</summary>
///<returns>trueifControlToValidate
///hasoneitemormoreselected</returns>

protectedboolEvaluateIsChecked()
...{
ListControllistToValidate
=((ListControl)this.FindControl(this.ControlToValidate));

foreach(ListItemliinlistToValidate.Items)
...{
if(li.Selected==true)
returntrue;
}

returnfalse;
}


/**////<summary>

///PreRender
///</summary>
///<paramname="e"></param>

protectedoverridevoidOnPreRender(EventArgse)
...{
System.Web.HttpContext.Current.Trace.Write(
"OverrideOnPreRender");
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:imporovetoallowvariablenumber.
this.RegisterClientScript();
}

else
...{
this.Attributes.Remove("evaluationfunction");
}

base.OnPreRender(e);
}


/**////<summary>
///Registertheclientscript.
///</summary>


protectedvoidRegisterClientScript()
...{
stringscript=@"

<scriptlanguage=""javascript"">
functionListItemVerify(val)
{
varcontrol=document.getElementById(val.controltovalidate);
varminimumNumberOfSelectedCheckBoxes=parseInt(val.minimumNumberOfSelectedCheckBoxes);
varselectedItemCount=0;
varliIndex=0;
varcurrentListItem=document.getElementById(control.id+'_'+liIndex.toString());
while(currentListItem!=null)
{
if(currentListItem.checked)selectedItemCount++;
liIndex++;
currentListItem=document.getElementById(control.id+'_'+liIndex.toString());
}
returnselectedItemCount>=minimumNumberOfSelectedCheckBoxes;
}
</script>
";

this.Page.ClientScript.RegisterClientScriptBlock(typeof(ListControlRequiredFieldValidator),"ListRequiredValidator_Script",script);
}


}

}


2、页面

<% ... @PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default" %>
<% ... @RegisterTagPrefix="ShiXun"NameSpace="ShiXun.Commoon.Web.Validor"Assembly="ShiXun.Commoon.Web.Validor" %>

<! DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//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 >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值