ASP.NET DEMO 12 : CheckBoxList 实现单选【转】
2012-06-04 14:45
561 查看
转自:/article/4756824.html
demo:http://files.cnblogs.com/Jinglecat/DEMO12_CheckBoxListSingleCheck.rar
一看标题估计大家都开始怀疑了:单选?为什么不直接使用 RadioButtonList ?
是的。你是对的。然而,实际应用中需求千变万化,谁让我们的客户够 BT 呢?
主要代码
只有一个通用的 CheckBoxList_Click 函数,
需要注意的是 CheckBoxList 可以呈现为 table 布局,也可以呈现为流布局(使用 span 做外部容器)
我的习惯是,脚本代码中,尽量不直接引用 html id,因为对于服务器控件对应的是 ClientID,而ClientID与控件层次关联的,不利于代码移植复用,因此尽可能选择直接传递对象,通过 DOM 获取相关的父控件和子控件。
function CheckBoxList_Click(sender)
<h3>单选效果的 CheckBoxList</h3>
<div style="float:left">
<h4>静态项</h4>
<asp:CheckBoxList ID="CheckBoxList1" BorderWidth="1" runat="server" RepeatLayout="Flow">
<asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item1">Item1</asp:ListItem>
<asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item2">Item2</asp:ListItem>
<asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item3">Item3</asp:ListItem>
<asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item4">Item4</asp:ListItem>
<asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item5">Item5</asp:ListItem>
</asp:CheckBoxList>
</div>
<div style="float:left;padding-left:100px">
<h4>绑定项</h4>
<asp:CheckBoxList ID="CheckBoxList2" BorderWidth="1" runat="server" DataTextField="Value" DataValueField="Key" OnDataBound="CheckBoxList2_DataBound">
</asp:CheckBoxList>
</div>
兼容性
IE 6 SP6, FF 2.0, Opera 9.2 测试通过
页面效果
全部代码
demo:http://files.cnblogs.com/Jinglecat/DEMO12_CheckBoxListSingleCheck.rar
一看标题估计大家都开始怀疑了:单选?为什么不直接使用 RadioButtonList ?
是的。你是对的。然而,实际应用中需求千变万化,谁让我们的客户够 BT 呢?
主要代码
只有一个通用的 CheckBoxList_Click 函数,
需要注意的是 CheckBoxList 可以呈现为 table 布局,也可以呈现为流布局(使用 span 做外部容器)
我的习惯是,脚本代码中,尽量不直接引用 html id,因为对于服务器控件对应的是 ClientID,而ClientID与控件层次关联的,不利于代码移植复用,因此尽可能选择直接传递对象,通过 DOM 获取相关的父控件和子控件。
function CheckBoxList_Click(sender)
<h3>单选效果的 CheckBoxList</h3>
<div style="float:left">
<h4>静态项</h4>
<asp:CheckBoxList ID="CheckBoxList1" BorderWidth="1" runat="server" RepeatLayout="Flow">
<asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item1">Item1</asp:ListItem>
<asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item2">Item2</asp:ListItem>
<asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item3">Item3</asp:ListItem>
<asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item4">Item4</asp:ListItem>
<asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item5">Item5</asp:ListItem>
</asp:CheckBoxList>
</div>
<div style="float:left;padding-left:100px">
<h4>绑定项</h4>
<asp:CheckBoxList ID="CheckBoxList2" BorderWidth="1" runat="server" DataTextField="Value" DataValueField="Key" OnDataBound="CheckBoxList2_DataBound">
</asp:CheckBoxList>
</div>
兼容性
IE 6 SP6, FF 2.0, Opera 9.2 测试通过
页面效果
全部代码
<%@ Page Language="C#" AutoEventWireup="true" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadCheckBoxListData(); } } // CheckBoxList DataBound 事件, // 此事件在执行数据绑定完成之后触发。 protected void CheckBoxList2_DataBound(object sender, EventArgs e) { CheckBoxList chkList = (CheckBoxList)sender; foreach (ListItem item in chkList.Items) { item.Attributes.Add("onclick", "CheckBoxList_Click(this)"); } } private void LoadCheckBoxListData() { IDictionary dataList1 = CreateSampleDataList(1, 10); CheckBoxList2.DataSource = dataList1; CheckBoxList2.DataBind(); RadioButtonList1.DataSource = dataList1; RadioButtonList1.DataBind(); } private SortedList CreateSampleDataList(int startOrdinal, int count) { SortedList list = new SortedList(); while (count-- > 0) { list.Add(startOrdinal, "item" + startOrdinal); startOrdinal++; } return list; } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>DEMO12_CheckBoxListSingleCheck</title> <script type="text/javascript"> function CheckBoxList_Click(sender) { var container = sender.parentNode; if(container.tagName.toUpperCase() == "TD") { // 服务器控件设置呈现为 table 布局(默认设置),否则使用流布局 container = container.parentNode.parentNode; // 层次: <table><tr><td><input /> } var chkList = container.getElementsByTagName("input"); var senderState = sender.checked; for(var i=0; i<chkList.length;i++) { chkList[i].checked = false; } sender.checked = senderState; } </script> </head> <body> <form id="form1" runat="server"> <h3>单选效果的 CheckBoxList</h3> <div style="float:left"> <h4>静态项</h4> <asp:CheckBoxList ID="CheckBoxList1" BorderWidth="1" runat="server" RepeatLayout="Flow"> <asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item1">Item1</asp:ListItem> <asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item2">Item2</asp:ListItem> <asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item3">Item3</asp:ListItem> <asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item4">Item4</asp:ListItem> <asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item5">Item5</asp:ListItem> </asp:CheckBoxList> </div> <div style="float:left;padding-left:100px"> <h4>绑定项</h4> <asp:CheckBoxList ID="CheckBoxList2" BorderWidth="1" runat="server" DataTextField="Value" DataValueField="Key" OnDataBound="CheckBoxList2_DataBound"> </asp:CheckBoxList> </div> <div style="float:left;padding-left:100px"> <h4>RadioButtonList 对比</h4> <asp:RadioButtonList ID="RadioButtonList1" BorderWidth="1" runat="server" DataTextField="Value" DataValueField="Key"> </asp:RadioButtonList> </div> </form> </body> </html>
相关文章推荐
- ASP.NET DEMO 12 : CheckBoxList 实现单选
- asp.net中实现CheckBoxList单选功能
- ASP.NET中 RadioButtonList(单选按钮组),CheckBoxList(复选框组),DropDownList(下拉框),ListBox(列表框),BulletedList(无序列表)的使用前台绑定
- ASP.NET CheckBoxList 控件实现全选、反选、清除功能 利用js
- DataGrid中加入CheckBox,并实现单选(C#,Asp.Net)
- asp.net mvc checkboxlist的简单实现
- ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
- ASP.NET CheckBoxList 空间实现全选、反选、清除功能
- ASP.NET CheckBoxList 用javascript 实现全选
- ASP.NET DEMO18 验证GridView中由DropDownList控制CheckBoxList的选择项个数
- Asp.net 中使用GridView控件实现Checkbox单选
- asp.net中dategrid添加复选框checkbox并实现单选,同时点击复选框触发事件。
- ASP.NET jQuery 食谱6 (实现CheckBoxList成员全选或全取消)
- ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
- Asp.net js获取CheckBoxlist 和 Radiobuttonlist
- Csharp:asp.net CheckBoxList databind
- ASP.NET MVC 中使用“RadioButtonList”和“CheckBoxList”
- 在ASP.NET MVC中使用“RadioButtonList”和“CheckBoxList”
- ASP.NET改变checkboxlist选中项字体颜色
- ASP.NET MVC 3 CheckBoxList 的使用