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的使用心得相关推荐

  1. js获取asp.net服务器端控件Label,TextBox,RadioButtonList,DropDownList的值

    在做 BS架构的项目时,经常遇到 需要用js 来调用 asp.net 服务器端控件的值. 大多数的 控件他的值都可以通过js调用它的 value属性来获得此控件的值,但是也有例外的情况. 经常用的 L ...

  2. javascript获取asp.net服务器端控件的值(2009-10-31 15:24:26)转载标签:杂谈 分类:技术分类

    javascript获取asp.net服务器端控件的值 (2009-10-31 15:24:26) 转载 标签: 杂谈 分类:技术分类 代码如下: <%@ Page Language=" ...

  3. javascript获取asp.net服务器端控件的值

    代码如下: <%@ Page Language="C#" CodeFile="A.aspx.cs" Inherits="OrderManage_ ...

  4. ASP.NET服务器端控件原理分析

    服务器端控件触发事件分两种: 1.服务器端控件Button被渲染成客户端的 <input type="submit" name="Button1" val ...

  5. Asp.net 服务器端控件

    Asp.net服务器控件编程(6) ViewState(二)--ViewState用法和IStateManager Asp.net服务器控件编程(5) 复杂属性 Asp.net服务器控件编程(4) 呈 ...

  6. 探讨微软ASP.NET AJAX控件开发技术(服务器端)

    一.简介 到目前为止,我们已经讨论了开发Ajax控件所涉及的客户端相关技术.现在,让我们来讨论此过程中与服务器端相关的一些技术. 需要说明的是,在[客户端]篇中我们的举例本质上仅是使用ASP.NET ...

  7. 17Web服务器端控件

    Web服务器端控件 Web服务器端控件 ASP.Net提供了两类服务器端控件:Html服务器端控件和Web服务器端控件.由于Web服务器端控件功能更强大,和Windows应用程序的控件使用方法类似,容 ...

  8. Asp.Net第二章服务器端控件

    服务器端控件 主要有:Label.TextBox.Button.RadioButton.CheckBox.RadioButtonList.CheckBoxList.HyperLink控件. 控件 La ...

  9. Asp.Net Ajax Control Toolkit 服务器端控件

    1. Accordion [功能概述] Accordion可以让你设计多个panel 并且一次只显示一个Panel .在页面上的显示效果就像是使用了多个CollapsiblePanels只不过每一次只 ...

最新文章

  1. 如何轻松愉快地理解条件随机场
  2. ASP.NET Core中GetService()和GetRequiredService()之间的区别
  3. python3 ssl.CertificateError: hostname manifest.googlevideo.com doesn t match either
  4. linux docker中gdb调试断点不停
  5. 数据结构和算法分析:第二章 算法分析
  6. 崩溃重启_三星手机大量系统崩溃,黑屏乱码无限重启,三星用户一片哀嚎
  7. VS2017 运行VS2013项目
  8. 全球及中国生物医药产业供给需求前景与运营风险分析报告2022版
  9. 端计算(9)-android opencv(1)
  10. 地图上的三国(一口气看完15幅地图)
  11. 设计模式16_策略模式
  12. Java中的JSON解析
  13. AutoCad窗口错误调整
  14. 谷歌浏览器Chrome播放rtsp实时视频,并抓图、录像、回放、倍速等
  15. 简单的Android 红外线遥控
  16. 【100题】给定入栈序列,判断一个序列是否可能为输出序列
  17. 【STM32】:RCC时钟系统
  18. VS2012中--查找定义后从未被使用的函数
  19. 腾讯35万年薪难求才 都去了微软和谷歌
  20. [PWN]/瑞士军刀

热门文章

  1. QT VS配置UNICODE问题
  2. Windows Server 2008 R2 做开发需要开启那些角色和组件
  3. Oracle 删除归档日志脚本
  4. 未来智能社会的一砖一瓦都需要今天我们一点点的探索发现!
  5. 在C++中for、if...内定义的变量在其之外就失效了~
  6. oracle protocol=beq 不可用,Oracle BEQ方式连接配置
  7. PERL 语言中的q,qw,qr,qx,qq......符号用法总结
  8. leetcode算法题--滑动窗口的最大值
  9. IceStorm src simple analyse
  10. 与癌症作战的 12 家 AI 公司,八仙过海各显神通