使用CustomValidator自定义验证控件检查是否有对ListBox控件选择
使用CustomValidator自定义验证控件检查是否有对ListBox控件选择
发布时间:2017-01-07 来源:查字典编辑
摘要:在前网页前端处,我们放置ListBox控件,在数据提交前,检查用户是否有对此控件进行选择?Insus.NET的方法是使用Javascript...

在前网页前端处,我们放置ListBox控件,在数据提交前,检查用户是否有对此控件进行选择? Insus.NET的方法是使用Javascript与CustomValidator自定义验证控件来检查。

可以看到最终结果:

1

你也想参此例子,可以参考下面数据与准备方法,写一个对象,它将用来产生十个天干。

HeavenlyStem.cs

复制代码 代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

/// <summary>

/// Summary description for HeavenlyStem

/// </summary>

public class HeavenlyStem

{

private int _ID;

private string _Name;

public int ID

{

get { return _ID; }

set { _ID = value; }

}

public string Name

{

get { return _Name; }

set { _Name = value; }

}

public HeavenlyStem()

{

//

// TODO: Add constructor logic here

//

}

public HeavenlyStem(int id, string name)

{

this.ID = id;

this._Name = name;

}

}

产生与用泛型来存储它们:

复制代码 代码如下:

private List<HeavenlyStem> GetHeavenStem()

{

List<HeavenlyStem> ListHS = new List<HeavenlyStem>();

HeavenlyStem hs = new HeavenlyStem();

hs.ID = 1;

hs.Name = "甲";

ListHS.Add(hs);

hs = new HeavenlyStem();

hs.ID = 2;

hs.Name = "乙";

ListHS.Add(hs);

hs = new HeavenlyStem();

hs.ID = 3;

hs.Name = "丙";

ListHS.Add(hs);

hs = new HeavenlyStem();

hs.ID = 4;

hs.Name = "丁";

ListHS.Add(hs);

hs = new HeavenlyStem();

hs.ID = 5;

hs.Name = "戊";

ListHS.Add(hs);

hs = new HeavenlyStem();

hs.ID = 6;

hs.Name = "己";

ListHS.Add(hs);

hs = new HeavenlyStem();

hs.ID = 7;

hs.Name = "庚";

ListHS.Add(hs);

hs = new HeavenlyStem();

hs.ID = 8;

hs.Name = "辛";

ListHS.Add(hs);

hs = new HeavenlyStem();

hs.ID = 9;

hs.Name = "壬";

ListHS.Add(hs);

hs = new HeavenlyStem();

hs.ID = 10;

hs.Name = "癸";

ListHS.Add(hs);

return ListHS;

}

Html标记:

复制代码 代码如下:

<asp:ListBox ID="ListBoxHeavenlyStem" runat="server" Width="60" Height="160" SelectionMode="Multiple"></asp:ListBox>

<asp:CustomValidator ID="CustomValidator1" runat="server" Display="None" ErrorMessage="必须选择选项" ClientValidationFunction="ValidateListBox"></asp:CustomValidator>

<asp:ValidationSummary ID="ValidationSummary1" runat="server" EnableClientScript="true"

ShowMessageBox="true" ShowSummary="false" />

<asp:Button ID="Button1" runat="server" Text="Submit" />

接下来,你需要在.aspx.cs为ListBox控件绑定数据,数据源即是刚才产生的List<HeavenlyStem>:

复制代码 代码如下:

using System.Collections.Generic;

using System.Data;

using System.Data.OleDb;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using Insus.NET;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

Data_Binding();

}

private void Data_Binding()

{

this.ListBoxHeavenlyStem.DataSource = GetHeavenStem();

this.ListBoxHeavenlyStem.DataTextField = "Name";

this.ListBoxHeavenlyStem.DataValueField = "ID";

this.ListBoxHeavenlyStem.DataBind();

}

}

最后是写Javascript脚本:

复制代码 代码如下:

function ValidateListBox(sender, args) {

var lb = document.getElementById("<%=ListBoxHeavenlyStem.ClientID%>")

var options = lb.options;

args.IsValid = false;

for (var i = 0; i < options.length; i++) {

if (options[i].selected == true) {

args.IsValid = true;

return;

}

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类