ASP.NET中WebForm组件CheckBoxList编程

原创 2007年10月16日 11:00:00
导读:
CheckBox选择组件是一个程序中都经常的组件。在程序设计中使用到该组件,一般都不会只使用到一个,往往是以多个此类组件的形式出现的。在ASP.NET页面中如果要使用到多个CheckBox组件,除了添加多个CheckBox组件在页面中之外,还有一种比较方便的方法,就是使用CheckBoxList组件。CheckBoxList组件是由一组的CheckBox组件组成的,在此组件中CheckBox是做为条目的形式出现的,并且对每个在CheckBoxList组件中的CheckBox都有一个索引号,这样在程序中就更容易来处理了。
    这时你可能要问,这不是多此一举么,既然有了CheckBox组件,还要CheckBoxList组件干什么?这是因为在程序设计的过程中,处理CheckBoxList组件要往往要比处理CheckBox组件相对容易的多并且也明了的多。举例如下:
    假定有一个CheckBoxList组件和有十个CheckBox组件,并且这个CheckBoxList组件是由这十个CheckBox组件构成的。为了检测这十个CheckBox组件中的哪些已经被选择的,如果程序中选用的CheckBox组件就需要如下代码:
   if ( C1 . Checked )
   {
    }
   if ( C2 . Checked )
   {
    }
   ....
   if ( C10 . Checked )
   {
   }
    但如果程序中使用了CheckBoxList组件,就只需要以下这几行代码就可以了:
   for ( int i = 0 ;i < CHK . Items . Count ;i++ )
   {
    if ( CHK . Items [ i ] . Selected )
    {
     //处理你要完成的工作
    }
   }
    注释:其中C1 -- C10是CheckBox组件,CHK是CheckBoxList组件
    可见用了CheckBoxList组件,在程序设计中的确更明了,更简洁了。并且只要你掌握了CheckBoxList组 件的用法,CheckBox组件的用法大致也就会了。
  一. 如何在创建一个CheckBoxList组件:
  <asp:CheckBoxList runat = "server" id = C1 >
  <asp:ListItem Value = 1 >第一个检查框</asp:ListItem >
  <asp:ListItem Value = 2 >第二个检查框</asp:ListItem >
  <asp:ListItem Value = 3 >第三个检查框</asp:ListItem >
  .....
  注释:在这里可以加入若干个检查框
  </asp:CheckBoxList >
    在ASP.NET页面中加入上面的语句,就可以产生一个名称为"C1"的CheckBoxList组件了。
    二. CheckBoxList组件中经常使用到的属性:
    I > .TextAlign属性:取值为:Left、Right。如果TextAlign的值为Left则CheckBoxList组件中的检查框的文字在选框的左边,同理如果TextAlign的值为Right则检查框的文字在选框的右边。
    II > .Selected属性:为布尔型,判定组件中的检查框是否被选中。
    III > .RepeatColumns属性:在CheckBoxList组件中有若干检查框,此属性主要是设定这些检查框到底用多少行来显示。
    IV > .RepeatDirection属性:此属性的值可为:Vertical、Horizontal。当设定了RepeatColumns属性后,设定此属性是如何排列组件中的各个检查框的。具体如下:
    假定CheckBoxList组件有四个检查框,并且RepeatColumns属性值为2。
    (1).如果RepeatDirection = Vertical,则在页面中检查框的显示方式如下:
     检查框01 检查框03
     检查框02 检查框04
    (2).如果RepeatDirection = Horizontal,则在页面中检查框的显示方式如下:
     检查框01 检查框02
     检查框03 检查框04
    V > .Count属性:返回CheckBoxList组件中有多少检查框。
    三. CheckBoxList组件中经常使用到的方法:
    (1).在组件中增加一个检查框,语法如下:
     CHKList . Items . Add ( new ListItem ( < text > , < value > ) )
    (2).访问组件中的检查框,语法如下:
     CHKList . Items [ < index > ]
    (3).删除组件中的检查框,语法如下:
     CHKList . Items . Remove ( < index > )
  四. 实例介绍CheckBoxList组件的使用方法:
    (1).如何判定选择了组件中的哪些检查框:
    在程序中,是通过处理Selected属性和Count属性来完成的,具体如下:
  for ( int i = 0 ;i < ChkList . Items . Count ;i++ )
  {
  if( ChkList . Items [ i ] . Selected )
  {
  lblResult . Text += ChkList . Items [ i ] .Text + " <br > " ;
  }
  }
    (2).如何设定CheckBoxList组件的外观布局:
    CheckBoxList组件有比较多的属性来设定它的外观,在本文介绍的程序中,主要是通过四个方面来设定组件的外观布局的:组件中的检查框中的文本和选框的排列位置、组件中各个检查框布局、组件中各个检查框排列方向和组件中各个检查框的排列行数,具体的程序代码如下:
  //组件中的检查框中的文本和选框的排列位置
  switch ( cboAlign . SelectedIndex )
  {
   case 0 :
    ChkList . TextAlign = TextAlign . Left ;
    break ;
   case 1 :
    ChkList . TextAlign = TextAlign . Right ;
    break ;
  }
  //组件中各个检查框布局
  switch ( cboRepeatLayout . SelectedIndex )
  {
   case 0 :
    ChkList . RepeatLayout = RepeatLayout . Table ;
    break ;
   case 1 :
    ChkList . RepeatLayout = RepeatLayout . Flow ;
    break ;
  }
  //组件中各个检查框排列方向
  switch ( cboRepeatDirection . SelectedIndex)
  {
   case 0 :
    ChkList . RepeatDirection = RepeatDirection . Vertical ;
    break ;
   case 1 :
    ChkList . RepeatDirection = RepeatDirection . Horizontal ;
    break ;
  }
  //组件中各个检查框的排列行数
  try
  {
   int cols = int . Parse ( txtRepeatCols.Text ) ;
   ChkList . RepeatColumns = cols ;
  }
  catch ( Exception )
  {
  }
          Check.aspx源程序代码如下:
  <%25 @Page Language = "C#" %25>
  <html >
  <head >
  <title > CheckBoxList组件演示程序 </title >
  <script runat = "server" >
   protected void Button_Click ( object sender , EventArgs e )
   {
    //组件中的检查框中的文本和选框的排列位置
    switch ( cboAlign . SelectedIndex )
    {
     case 0 :
      ChkList . TextAlign = TextAlign . Left ;
      break ;
     case 1 :
      ChkList . TextAlign = TextAlign . Right ;
      break ;
    }
    //组件中各个检查框布局
    switch ( cboRepeatLayout . SelectedIndex )
    {
     case 0 :
      ChkList . RepeatLayout = RepeatLayout . Table ;
      break ;
     case 1 :
      ChkList . RepeatLayout = RepeatLayout . Flow ;
      break ;
    }
    //组件中各个检查框排列方向
    switch ( cboRepeatDirection . SelectedIndex)
    {
     case 0 :
      ChkList . RepeatDirection = RepeatDirection . Vertical ;
      break ;
     case 1 :
      ChkList . RepeatDirection = RepeatDirection . Horizontal ;
      break ;
    }
    //组件中各个检查框的排列行数
    try
    {
     int cols = int . Parse ( txtRepeatCols.Text ) ;
     ChkList . RepeatColumns = cols ;
    }
    catch ( Exception )
    {
    }
    lblResult . Text = "" ;
    for ( int i = 0 ;i < ChkList . Items . Count ;i++ )
    {
     if( ChkList . Items [ i ] . Selected )
     {
      lblResult . Text += ChkList . Items [ i ] .Text + " <br > " ;
     }
    }
   }
   </script >
   </head >
   <body >
   <form runat = "server" >
    <h1 align = center > CheckBoxList组件演示程序 </h1 >
    <table >
     <tr >
      <td > 组件中的文本排列位置: </td >
      <td >
        <asp:DropDownList id = cboAlign runat = "server" >
         <asp:ListItem > 居左 </asp:ListItem >
         <asp:ListItem > 居右 </asp:ListItem >
        </asp:DropDownList >
      </td >
     </tr >
     <tr >
      <td > 组件中各个条目布局: </td >
      <td >
        <asp:DropDownList id = cboRepeatLayout runat = "server" >
         <asp:ListItem > 表格型 </asp:ListItem >
         <asp:ListItem > 紧凑型 </asp:ListItem >
        </asp:DropDownList >
      </td >
     </tr >
     <tr >
      <td> 组件中各个条目排列方向:</td >
      <td >
        <asp:DropDownList id = cboRepeatDirection runat = "server" >
         <asp:ListItem > 水平方向 </asp:ListItem >
         <asp:ListItem > 垂直方向 </asp:ListItem >
        </asp:DropDownList >
      </td >
     </tr >
     <tr >
      <td > 组件中各个条目排列行数: </td >
      <td > <asp:TextBox id = "txtRepeatCols" runat = "server" /> </td >
     </tr >
    </table >
    <br >
     请选择你所需要学习的计算机语言类型:
    <br >
    <asp:CheckBoxList id = "ChkList" RepeatDirection = Horizontal runat = "server" >
     <asp:ListItem > Visual C++ .Net </asp:ListItem >
     <asp:ListItem > Visual C# </asp:ListItem >
     <asp:ListItem > VB.NET </asp:ListItem >
     <asp:ListItem > JScript.NET </asp:ListItem >
     <asp:ListItem > Visual J# </asp:ListItem >
    </asp:CheckBoxList >
    <br >
     <asp:Button Text = "提交" runat = "server" onclick = "Button_Click" />
     <h1 > <font color = red > 你选择的计算机语言类型为: </font > </h1 >
     <asp:Label id = lblResult runat = "server" />
   </form >
   </body >
  </html >
            六. 总结:
    其实CheckBoxList组件也是一个服务器端组件。本文介绍了CheckBoxList组件中的一些主要的属性和方法,并且通过一个比较典型的例子说明了在ASP.NET页面中如何进行与CheckBoxList组件相关的编程,其实对于另外一个比较重要的组件--CheckBox来说,他们中有许多的相似之处,掌握了CheckBoxList组件的用法大致也就掌握了CheckBox组件的用法。
  posted on 2006-07-10 16:52 太阳种子阅读(176) 评论(0) 编辑 收藏所属分类: ASP.NET技术
        本文转自
http://www.cnblogs.com/microchuan/archive/2006/07/10/447340.html  

限制CheckBoxList控件只能单选

限制CheckBoxList控件只能单选 开发要求,原本对CheckBoxList控件是用来让用户多选的。但现在特殊要求,这个CheckBoxList控件限制只能单选。 哈哈,看看...
  • kissdeath
  • kissdeath
  • 2014年07月09日 10:37
  • 5491

解析ASP.NET WebForm和Mvc开发的区别

因为以前主要是做WebFrom开发,对MVC开发并没有太深入的了解。自从来到创新工场的新团队后,用的技术都是自己以前没有接触过的,比如:MVC 和EF还有就是WCF,压力一直很大。在很多问题都是不清楚...
  • yisuowushinian
  • yisuowushinian
  • 2013年12月29日 01:59
  • 53118

不用asp.net MVC,用WebForm照样可以实现MVC

在《避开WebForm天坑,拥抱ASP.Net MVC吧》这篇博客中我讲到了ASP.net WebForm由于一些先天的“诱导犯罪”的缺陷,现在用ASP.net MVC的公司越来越多。但是根据那篇文章...
  • cownew
  • cownew
  • 2015年12月25日 08:35
  • 4212

ASP.NET WebForm 的CheckBoxList控件通过js获取Value值问题

ASP.NET WebForm 的CheckBoxList控件通过js获取Value值问题故事背景最近在改之前很早的一个项目,用的还是WebForm开发的。追加功能之后,有个地方是弹出层来填写表单信息...
  • lingxyd_0
  • lingxyd_0
  • 2015年12月06日 17:18
  • 3630

ASP.NET2.0 CheckBoxList组件编程浅析

ASP.NET CheckBoxList组件编程的出现:CheckBox选择组件是一个程序中都经常的组件。在程序设计中使用到该组件,一般都不会只使用到一个,往往是以多个此类组件的形式出现的。在ASP....
  • shuicaohui5
  • shuicaohui5
  • 2012年06月08日 10:12
  • 1784

asp.net mvc中构建htmlHelper的checkboxlist

为MVC的HtmlHelp添加一个CheckBoxList的方法
  • qq_29380855
  • qq_29380855
  • 2015年12月25日 17:22
  • 427

asp.net中checkboxlist判断至少选择一项的方法

.aspx代码如下:                     body,div,h2{ margin:0px; padding:0px;}       ...
  • yayun0516
  • yayun0516
  • 2014年12月10日 09:22
  • 1894

ASP.NET MVC 3 CheckBoxList 的使用

在以前的 ASP.NET MVC 中可以直接使用 CheckBoxList,但后来不知道什么原因在 MVC 中移除了 CheckBoxList,所以默认情况下 ASP.NET MVC 3 中是没有 C...
  • fer_ba
  • fer_ba
  • 2012年06月08日 22:55
  • 2013

Asp.net js获取CheckBoxlist 和 Radiobuttonlist

今天做了一个项目,其中涉及到多选和单选,一般我们用HTML控件中的CheckBox和RadioBox,但竟然是用微软的Asp.net,那为了方便,自然用其自带的控件CheckBoxlist 和 Rad...
  • wjf8882300
  • wjf8882300
  • 2016年04月15日 14:21
  • 611

ASP.NET MVC4中如何使用checkboxlist

ASP.NET MVC4是一款非常强大的开发框架,但是之前在工作中发现它的htmlhelper中竟然没有checkboxlist的生成方法,然后经过一番摸索后终于找到了解决的办法,现在记录下来。 首先...
  • tczhoulan
  • tczhoulan
  • 2016年12月10日 15:18
  • 2651
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET中WebForm组件CheckBoxList编程
举报原因:
原因补充:

(最多只允许输入30个字)