zl程序教程

您现在的位置是:首页 >  其它

当前栏目

使用CustomValidator自定义验证控件检查是否有对ListBox控件选择

使用 选择 是否 自定义 验证 检查 控件 ListBox
2023-06-13 09:14:44 时间
在前网页前端处,我们放置ListBox控件,在数据提交前,检查用户是否有对此控件进行选择?Insus.NET的方法是使用Javascript与CustomValidator自定义验证控件来检查。
可以看到最终结果:
 
你也想参此例子,可以参考下面数据与准备方法,写一个对象,它将用来产生十个天干。
HeavenlyStem.cs
复制代码代码如下:

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
///<summary>
///SummarydescriptionforHeavenlyStem
///</summary>
publicclassHeavenlyStem
{
privateint_ID;
privatestring_Name;
publicintID
{
get{return_ID;}
set{_ID=value;}
}
publicstringName
{
get{return_Name;}
set{_Name=value;}
}
publicHeavenlyStem()
{
//
//TODO:Addconstructorlogichere
//
}
publicHeavenlyStem(intid,stringname)
{
this.ID=id;
this._Name=name;
}
}

产生与用泛型来存储它们
复制代码代码如下:

privateList<HeavenlyStem>GetHeavenStem()
{
List<HeavenlyStem>ListHS=newList<HeavenlyStem>();
HeavenlyStemhs=newHeavenlyStem();
hs.ID=1;
hs.Name="甲";
ListHS.Add(hs);
hs=newHeavenlyStem();
hs.ID=2;
hs.Name="乙";
ListHS.Add(hs);
hs=newHeavenlyStem();
hs.ID=3;
hs.Name="丙";
ListHS.Add(hs);
hs=newHeavenlyStem();
hs.ID=4;
hs.Name="丁";
ListHS.Add(hs);
hs=newHeavenlyStem();
hs.ID=5;
hs.Name="戊";
ListHS.Add(hs);
hs=newHeavenlyStem();
hs.ID=6;
hs.Name="己";
ListHS.Add(hs);
hs=newHeavenlyStem();
hs.ID=7;
hs.Name="庚";
ListHS.Add(hs);
hs=newHeavenlyStem();
hs.ID=8;
hs.Name="辛";
ListHS.Add(hs);
hs=newHeavenlyStem();
hs.ID=9;
hs.Name="壬";
ListHS.Add(hs);
hs=newHeavenlyStem();
hs.ID=10;
hs.Name="癸";
ListHS.Add(hs);
returnListHS;
}

Html标记
复制代码代码如下:
<asp:ListBoxID="ListBoxHeavenlyStem"runat="server"Width="60"Height="160"SelectionMode="Multiple"></asp:ListBox>
<asp:CustomValidatorID="CustomValidator1"runat="server"Display="None"ErrorMessage="必须选择选项"ClientValidationFunction="ValidateListBox"></asp:CustomValidator>
<asp:ValidationSummaryID="ValidationSummary1"runat="server"EnableClientScript="true"
ShowMessageBox="true"ShowSummary="false"/>
<asp:ButtonID="Button1"runat="server"Text="Submit"/>

接下来,你需要在.aspx.cs为ListBox控件绑定数据,数据源即是刚才产生的List<HeavenlyStem>:
复制代码代码如下:
usingSystem.Collections.Generic;
usingSystem.Data;
usingSystem.Data.OleDb;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingInsus.NET;
publicpartialclass_Default:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!IsPostBack)
Data_Binding();
}
privatevoidData_Binding()
{
this.ListBoxHeavenlyStem.DataSource=GetHeavenStem();
this.ListBoxHeavenlyStem.DataTextField="Name";
this.ListBoxHeavenlyStem.DataValueField="ID";
this.ListBoxHeavenlyStem.DataBind();
}
}

最后是写Javascript脚本
复制代码代码如下:
functionValidateListBox(sender,args){
varlb=document.getElementById("<%=ListBoxHeavenlyStem.ClientID%>")
varoptions=lb.options;
args.IsValid=false;
for(vari=0;i<options.length;i++){
if(options[i].selected==true){
args.IsValid=true;
return;
}
}
}