Asp.net服务器端控件CheckBoxList的使用心得
1.用JavaScript获得Asp.net服务器端控件CheckBoxList选中得值
Asp.net服务器端控件CheckBoxList在客户端没有生成value值,所以就想在客户端通过JS获得选中项就很麻烦了。
迫于无奈,只能写了以下的代码。比较通用,适合于CheckBoxList的属性RepeatLayout为Flow和Table,属性RepeatDirection为Horizontal和Vertical
objID为服务器端控件在客户端生成的ID
通用版本(不依赖任何类库)
function GetCheckBoxListValue(objID)
{
var v = new Array();
var CheckBoxList = document.getElementById(objID);
if(CheckBoxList.tagName == "TABLE")
{
for(i=0;i<CheckBoxList.rows.length;i++)
for(j=0;j<CheckBoxList.rows[i].cells.length;j++)
if(CheckBoxList.rows[i].cells[j].childNodes[0])
if(CheckBoxList.rows[i].cells[j].childNodes[0].checked==true)
v.push(CheckBoxList.rows[i].cells[j].childNodes[1].innerText);
}
if(CheckBoxList.tagName == "SPAN")
{
for(i=0;i<CheckBoxList.childNodes.length;i++)
if(CheckBoxList.childNodes[i].tagName == "INPUT")
if(CheckBoxList.childNodes[i].checked==true)
{
i++;
v.push(CheckBoxList.childNodes[i].innerText);
}
}
return v;
}
Asp.net Ajax版本(依赖Asp.net Ajax类库支持)
function GetCheckBoxListValue(objID)
{
var v = new Array();
var CheckBoxList = $get(objID);
if(CheckBoxList.tagName == "TABLE")
{
for(i=0;i<CheckBoxList.rows.length;i++)
for(j=0;j<CheckBoxList.rows[i].cells.length;j++)
if(CheckBoxList.rows[i].cells[j].childNodes[0])
if(CheckBoxList.rows[i].cells[j].childNodes[0].checked==true)
Array.add(v,CheckBoxList.rows[i].cells[j].childNodes[1].innerText);
}
if(CheckBoxList.tagName == "SPAN")
{
for(i=0;i<CheckBoxList.childNodes.length;i++)
if(CheckBoxList.childNodes[i].tagName == "INPUT")
if(CheckBoxList.childNodes[i].checked==true)
{
i++;
Array.add(v,CheckBoxList.childNodes[i].innerText);
}
}
return v;
}
2.判断CheckBoxList中SelectedIndexChanged事件是哪个checkbox引发的
private static bool[] arrtmp;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
arrtmp=new bool[CheckBoxList1.Items.Count];
for(int i=0;i <=CheckBoxList1.Items.Count-1;i++)
{
arrtmp[i]=CheckBoxList1.Items[i].Selected;
}
}
}
//判断当前触发的checkbox项的id和是否选中
private void CheckBoxList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
int clicknum;
clicknum=-1;
for(int i=0;i <= CheckBoxList1.Items.Count-1;i++)
{
if(arrtmp[i]!=CheckBoxList1.Items[i].Selected)
{
arrtmp[i] =CheckBoxList1.Items[i].Selected;
clicknum=i;
break;
}
}
if(clicknum>=0)
{
TextBox1.Text=CheckBoxList1.Items[clicknum].ToString();
}
}
3.得到当前所有CheckBoxList选择的项
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
//得到当前所有选择的项
string Groupid = "";
foreach (ListItem li in ((CheckBoxList)sender).Items)
{
if (li.Selected)
{
if (Groupid == "")
{
Groupid = Groupid + li.Value;
}
else
{
Groupid = Groupid + "," + li.Value;
}
}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rmak2008/archive/2009/01/07/3725463.aspx
转载于:https://www.cnblogs.com/MYGMVP/archive/2009/07/07/1518130.html
Asp.net服务器端控件CheckBoxList的使用心得相关推荐
- js获取asp.net服务器端控件Label,TextBox,RadioButtonList,DropDownList的值
在做 BS架构的项目时,经常遇到 需要用js 来调用 asp.net 服务器端控件的值. 大多数的 控件他的值都可以通过js调用它的 value属性来获得此控件的值,但是也有例外的情况. 经常用的 L ...
- javascript获取asp.net服务器端控件的值(2009-10-31 15:24:26)转载标签:杂谈 分类:技术分类
javascript获取asp.net服务器端控件的值 (2009-10-31 15:24:26) 转载 标签: 杂谈 分类:技术分类 代码如下: <%@ Page Language=" ...
- javascript获取asp.net服务器端控件的值
代码如下: <%@ Page Language="C#" CodeFile="A.aspx.cs" Inherits="OrderManage_ ...
- ASP.NET服务器端控件原理分析
服务器端控件触发事件分两种: 1.服务器端控件Button被渲染成客户端的 <input type="submit" name="Button1" val ...
- Asp.net 服务器端控件
Asp.net服务器控件编程(6) ViewState(二)--ViewState用法和IStateManager Asp.net服务器控件编程(5) 复杂属性 Asp.net服务器控件编程(4) 呈 ...
- 探讨微软ASP.NET AJAX控件开发技术(服务器端)
一.简介 到目前为止,我们已经讨论了开发Ajax控件所涉及的客户端相关技术.现在,让我们来讨论此过程中与服务器端相关的一些技术. 需要说明的是,在[客户端]篇中我们的举例本质上仅是使用ASP.NET ...
- 17Web服务器端控件
Web服务器端控件 Web服务器端控件 ASP.Net提供了两类服务器端控件:Html服务器端控件和Web服务器端控件.由于Web服务器端控件功能更强大,和Windows应用程序的控件使用方法类似,容 ...
- Asp.Net第二章服务器端控件
服务器端控件 主要有:Label.TextBox.Button.RadioButton.CheckBox.RadioButtonList.CheckBoxList.HyperLink控件. 控件 La ...
- Asp.Net Ajax Control Toolkit 服务器端控件
1. Accordion [功能概述] Accordion可以让你设计多个panel 并且一次只显示一个Panel .在页面上的显示效果就像是使用了多个CollapsiblePanels只不过每一次只 ...
最新文章
- 如何轻松愉快地理解条件随机场
- ASP.NET Core中GetService()和GetRequiredService()之间的区别
- python3 ssl.CertificateError: hostname manifest.googlevideo.com doesn t match either
- linux docker中gdb调试断点不停
- 数据结构和算法分析:第二章 算法分析
- 崩溃重启_三星手机大量系统崩溃,黑屏乱码无限重启,三星用户一片哀嚎
- VS2017 运行VS2013项目
- 全球及中国生物医药产业供给需求前景与运营风险分析报告2022版
- 端计算(9)-android opencv(1)
- 地图上的三国(一口气看完15幅地图)
- 设计模式16_策略模式
- Java中的JSON解析
- AutoCad窗口错误调整
- 谷歌浏览器Chrome播放rtsp实时视频,并抓图、录像、回放、倍速等
- 简单的Android 红外线遥控
- 【100题】给定入栈序列,判断一个序列是否可能为输出序列
- 【STM32】:RCC时钟系统
- VS2012中--查找定义后从未被使用的函数
- 腾讯35万年薪难求才 都去了微软和谷歌
- [PWN]/瑞士军刀
热门文章
- QT VS配置UNICODE问题
- Windows Server 2008 R2 做开发需要开启那些角色和组件
- Oracle 删除归档日志脚本
- 未来智能社会的一砖一瓦都需要今天我们一点点的探索发现!
- 在C++中for、if...内定义的变量在其之外就失效了~
- oracle protocol=beq 不可用,Oracle BEQ方式连接配置
- PERL 语言中的q,qw,qr,qx,qq......符号用法总结
- leetcode算法题--滑动窗口的最大值
- IceStorm src simple analyse
- 与癌症作战的 12 家 AI 公司,八仙过海各显神通