限制CheckBoxList控件只能單選實(shí)現(xiàn)代碼及演示動(dòng)畫
更新時(shí)間:2013年01月23日 09:20:03 作者:
開發(fā)要求,原本對(duì)CheckBoxList控件是用來讓用戶多選的。但現(xiàn)在特殊要求,這個(gè)CheckBoxList控件限制只能單選,很多新手朋友可能不知從何下手,為此本文的出現(xiàn)時(shí)有必要的了,有需要的朋友可以了解此文
開發(fā)要求,原本對(duì)CheckBoxList控件是用來讓用戶多選的。但現(xiàn)在特殊要求,這個(gè)CheckBoxList控件限制只能單選。
哈哈,看看做出來的效果:

為了你也能實(shí)現(xiàn)出來,可以參考下面的方法,第一是準(zhǔn)備好一個(gè)對(duì)象“地支”(Terrestrial Branch)
TerrestrialBranch.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for TerrestrialBranch
/// </summary>
namespace Insus.NET
{
public class TerrestrialBranch
{
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 TerrestrialBranch()
{
//
// TODO: Add constructor logic here
//
}
public TerrestrialBranch(int id, string name)
{
this.ID = id;
this._Name = name;
}
}
}
用數(shù)據(jù)填充這個(gè)對(duì)象,并用泛型List<t>來存儲(chǔ)這十二個(gè)對(duì)象:
private List<TerrestrialBranch> GetData()
{
List<TerrestrialBranch> tbs = new List<TerrestrialBranch>();
tbs.Add(new TerrestrialBranch(1,"子"));
tbs.Add(new TerrestrialBranch(2, "丑"));
tbs.Add(new TerrestrialBranch(3, "寅"));
tbs.Add(new TerrestrialBranch(4, "卯"));
tbs.Add(new TerrestrialBranch(5, "辰"));
tbs.Add(new TerrestrialBranch(6, "巳"));
tbs.Add(new TerrestrialBranch(7, "午"));
tbs.Add(new TerrestrialBranch(8, "未"));
tbs.Add(new TerrestrialBranch(9, "申"));
tbs.Add(new TerrestrialBranch(10, "酉"));
tbs.Add(new TerrestrialBranch(11, "戌"));
tbs.Add(new TerrestrialBranch(12, "亥"));
return tbs;
}
在.aspx頁面拉一個(gè)CheckBoxList控件,設(shè)置兩個(gè)屬性RepeatColumns="6" RepeatDirection="Horizontal"
<asp:CheckBoxList ID="CheckBoxListTerrestrialBranch" runat="server" RepeatColumns="6" RepeatDirection="Horizontal"></asp:CheckBoxList>
把剛才準(zhǔn)備好的List<TerrestrialBranch>綁定給這個(gè)CheckBoxList控件:
using System;
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.CheckBoxListTerrestrialBranch.DataSource = GetData();
this.CheckBoxListTerrestrialBranch.DataTextField = "Name";
this.CheckBoxListTerrestrialBranch.DataValueField = "ID";
this.CheckBoxListTerrestrialBranch.DataBind();
}
}
OK,一切準(zhǔn)備就緒,可以寫Javascript腳本,放在<head>之內(nèi)。
window.onload = function () {
var cbl = document.getElementById('<%= CheckBoxListTerrestrialBranch.ClientID %>')
var inputs = cbl.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].type == "checkbox") {
inputs[i].onclick = function () {
var cbs = inputs;
for (var i = 0; i < cbs.length; i++) {
if (cbs[i].type == "checkbox" && cbs[i] != this && this.checked) {
cbs[i].checked = false;
}
}
}
}
}
}
哈哈,看看做出來的效果:

為了你也能實(shí)現(xiàn)出來,可以參考下面的方法,第一是準(zhǔn)備好一個(gè)對(duì)象“地支”(Terrestrial Branch)
TerrestrialBranch.cs
復(fù)制代碼 代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for TerrestrialBranch
/// </summary>
namespace Insus.NET
{
public class TerrestrialBranch
{
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 TerrestrialBranch()
{
//
// TODO: Add constructor logic here
//
}
public TerrestrialBranch(int id, string name)
{
this.ID = id;
this._Name = name;
}
}
}
用數(shù)據(jù)填充這個(gè)對(duì)象,并用泛型List<t>來存儲(chǔ)這十二個(gè)對(duì)象:
復(fù)制代碼 代碼如下:
private List<TerrestrialBranch> GetData()
{
List<TerrestrialBranch> tbs = new List<TerrestrialBranch>();
tbs.Add(new TerrestrialBranch(1,"子"));
tbs.Add(new TerrestrialBranch(2, "丑"));
tbs.Add(new TerrestrialBranch(3, "寅"));
tbs.Add(new TerrestrialBranch(4, "卯"));
tbs.Add(new TerrestrialBranch(5, "辰"));
tbs.Add(new TerrestrialBranch(6, "巳"));
tbs.Add(new TerrestrialBranch(7, "午"));
tbs.Add(new TerrestrialBranch(8, "未"));
tbs.Add(new TerrestrialBranch(9, "申"));
tbs.Add(new TerrestrialBranch(10, "酉"));
tbs.Add(new TerrestrialBranch(11, "戌"));
tbs.Add(new TerrestrialBranch(12, "亥"));
return tbs;
}
在.aspx頁面拉一個(gè)CheckBoxList控件,設(shè)置兩個(gè)屬性RepeatColumns="6" RepeatDirection="Horizontal"
復(fù)制代碼 代碼如下:
<asp:CheckBoxList ID="CheckBoxListTerrestrialBranch" runat="server" RepeatColumns="6" RepeatDirection="Horizontal"></asp:CheckBoxList>
把剛才準(zhǔn)備好的List<TerrestrialBranch>綁定給這個(gè)CheckBoxList控件:
復(fù)制代碼 代碼如下:
using System;
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.CheckBoxListTerrestrialBranch.DataSource = GetData();
this.CheckBoxListTerrestrialBranch.DataTextField = "Name";
this.CheckBoxListTerrestrialBranch.DataValueField = "ID";
this.CheckBoxListTerrestrialBranch.DataBind();
}
}
OK,一切準(zhǔn)備就緒,可以寫Javascript腳本,放在<head>之內(nèi)。
復(fù)制代碼 代碼如下:
window.onload = function () {
var cbl = document.getElementById('<%= CheckBoxListTerrestrialBranch.ClientID %>')
var inputs = cbl.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].type == "checkbox") {
inputs[i].onclick = function () {
var cbs = inputs;
for (var i = 0; i < cbs.length; i++) {
if (cbs[i].type == "checkbox" && cbs[i] != this && this.checked) {
cbs[i].checked = false;
}
}
}
}
}
}
您可能感興趣的文章:
- asp.net Javascript獲取CheckBoxList的value
- JQuery中對(duì)服務(wù)器控件 DropdownList, RadioButtonList, CheckboxList的操作總結(jié)
- ASP.NET jQuery 實(shí)例5 (顯示CheckBoxList成員選中的內(nèi)容)
- ASP.NET jQuery 實(shí)例6 (實(shí)現(xiàn)CheckBoxList成員全選或全取消)
- ASP.NET jQuery 實(shí)例15 通過控件CustomValidator驗(yàn)證CheckBoxList
- js操作CheckBoxList實(shí)現(xiàn)全選/反選(在客服端完成)
- 在js中判斷checkboxlist(.net控件客戶端id)是否有選中
- asp.net CheckBoxList各項(xiàng)最小寬度CSS樣式(兼容性good)
- CheckBoxList兩列并排編譯為表格顯示具體實(shí)現(xiàn)
- ASP.NET中用js取CheckBoxList中值的方法實(shí)例
- CheckBoxList多選樣式j(luò)query、C#獲取選擇項(xiàng)
- ASP.NET服務(wù)器端控件RadioButtonList,DropDownList,CheckBoxList的取值、賦值用法
- 在.net中用CheckBoxList實(shí)現(xiàn)單選
- jQuery獲取checkboxlist的value值的方法
- ASP.NET中CheckBoxList復(fù)選框列表控件詳細(xì)使用方法
相關(guān)文章
c# 讀取Northwind數(shù)據(jù)庫image字段
我在寫一個(gè)三層結(jié)構(gòu)Demo時(shí),使用了Northwind這個(gè)范例數(shù)據(jù)庫。但是奇怪的是,讀取Categories表的Picture列(image類型)無法在image控件中正常顯示(解決方案在后面代碼中可以看到)。2009-03-03關(guān)于利用RabbitMQ實(shí)現(xiàn)延遲任務(wù)的方法詳解
最近在使用RabbitMQ來實(shí)現(xiàn)延遲任務(wù)的時(shí)候發(fā)現(xiàn),這其中的知識(shí)點(diǎn)還是挺多的,所以下面這篇文章主要給大家介紹了關(guān)于利用RabbitMQ實(shí)現(xiàn)延遲任務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-12-12Asp.net Core中實(shí)現(xiàn)自定義身份認(rèn)證的示例代碼
這篇文章主要介紹了Asp.net Core中實(shí)現(xiàn)自定義身份認(rèn)證的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05.net搜索查詢并實(shí)現(xiàn)分頁實(shí)例
.net搜索查詢并實(shí)現(xiàn)分頁實(shí)例,需要的朋友可以參考一下2013-03-03asp.net中Session緩存與Cache緩存的區(qū)別分析
實(shí)現(xiàn)數(shù)據(jù)的緩存有很多種方法,有客戶端的Cookie,有服務(wù)器端的Session和Application2013-02-02ASP.NET中基于soaphead的webservice安全機(jī)制
常會(huì)用到WebService來通訊,但WebService發(fā)布后為了能調(diào)用,一般都通過發(fā)布到IIS后調(diào)用 的。在IIS里可以通過匿名訪問,但這樣大家都可能訪問,不安全,下面提供一種基于soaphead的安全機(jī)制。2016-05-05asp.net下使用DbProviderFactories的數(shù)據(jù)庫操作類
項(xiàng)目開發(fā)中用到VB.NET開發(fā),參考網(wǎng)上的資料,自己寫了數(shù)據(jù)庫操作類。2010-06-06