简单实现C# CheckBox单选的相关功能

开发 后端
这里将简单介绍如何实现C# CheckBox单选的相关功能,主要是先遍历然后把单击设为选中。希望本文能对大家有所帮助。

DataGrid中加入CheckBox,并实现c# CheckBox单选原理就是用js遍列所有CheckBox把所有CheckBox设为未被选中,然后在把单击的CheckBox设为选中。

以下是c# CheckBox单选的实现方法:

aspx文件:

  1. <%@ page language="c#" codebehind="webform1.aspx.cs" autoeventwireup="false" inherits="datagridcheck.webform1" %>   
  2. >   
  3. <html>   
  4. <head>   
  5. <title>webform1title>   
  6. <meta content="microsoft visual studio .net 7.1" name="generator">   
  7. <meta content="c#" name="code_language">   
  8. <meta content="javascript" name="vs_defaultclientscript">   
  9. <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetschema">   
  10. <script language="javascript">   
  11. function setcheckboxstate()   
  12. {   
  13. var dom=document.all;   
  14. var el=event.srcelement;   
  15. if(el.tagname=="input"&&el.type.tolowercase()=="checkbox")   
  16. {   
  17. for(i=0;i<dom.length;i++)   
  18. {   
  19. if(dom[i].tagname=="input"&&dom[i].type.tolowercase()=="checkbox")   
  20. {   
  21. dom[i].checked=false;   
  22. }   
  23. }   
  24. }   
  25. el.checked=!el.checked;   
  26. }   
  27. script>   
  28. head>   
  29. <body ms_positioning="gridlayout">   
  30. <form id="form1" method="post" runat="server">   
  31. <font face="宋体">   
  32. <asp:datagrid id="dg" style="z-index: 101; left: 168px; position: absolute; top: 40px" runat="server"   
  33. width="440px" autogeneratecolumns="false">   
  34. <columns>   
  35. <asp:templatecolumn>   
  36. <itemtemplate>   
  37. <asp:checkbox id="chkexport" runat="server">asp:checkbox>   
  38. itemtemplate>   
  39. asp:templatecolumn>   
  40. <asp:boundcolumn datafield="integervalue">asp:boundcolumn>   
  41. <asp:boundcolumn datafield="stringvalue">asp:boundcolumn>   
  42. <asp:boundcolumn datafield="currencyvalue">asp:boundcolumn>   
  43. columns>   
  44. asp:datagrid><asp:button id="button1" style="z-index: 102; left: 168px; position: absolute; top: 8px" runat="server"   
  45. text="显示内容">asp:button>font>form>   
  46. body>   
  47. html>   

以下是cs文件

  1. using system;   
  2. using system.collections;   
  3. using system.componentmodel;   
  4. using system.data;   
  5. using system.drawing;   
  6. using system.web;   
  7. using system.web.sessionstate;   
  8. using system.web.ui;   
  9. using system.web.ui.webcontrols;   
  10. using system.web.ui.htmlcontrols;   
  11. namespace datagridcheck   
  12. {   
  13. /// <summary>   
  14. /// webform1 的摘要说明。   
  15. /// summary>   
  16. public class webform1 : system.web.ui.page   
  17. {   
  18. protected system.web.ui.webcontrols.button button1;   
  19. protected system.web.ui.webcontrols.datagrid dg;   
  20. private void page_load(object sender, system.eventargs e)   
  21. {   
  22. // 在此处放置用户代码以初始化页面   
  23. if (!page.ispostback)   
  24. {   
  25. dg.datasourcecreatedatasource() ;   
  26. dg.databind();   
  27. }   
  28. }   
  29. icollection createdatasource()   
  30. {   
  31. datatable dt = new datatable();   
  32. datarow dr;   
  33. dt.columns.add(new datacolumn("integervalue", typeof(int32)));   
  34. dt.columns.add(new datacolumn("stringvalue", typeof(string)));   
  35. dt.columns.add(new datacolumn("currencyvalue", typeof(double)));   
  36. for (int i = 0; i < 9; i++)   
  37. {   
  38. dr = dt.newrow();   
  39. dr[0] = i;   
  40. dr[1] = "item " + i.tostring();   
  41. dr[2] = 1.23 * (i + 1);   
  42. dt.rows.add(dr);   
  43. }   
  44. dataview dv = new dataview(dt);   
  45. return dv;   
  46. }   
  47. #region web 窗体设计器生成的代码   
  48. override protected void oninit(eventargs e)   
  49. {   
  50. //   
  51. // codegen: 该调用是 asp.net web 窗体设计器所必需的。   
  52. //   
  53. initializecomponent();   
  54. base.oninit(e);   
  55. }   
  56. /// <summary>   
  57. /// 设计器支持所需的方法 - 不要使用代码编辑器修改   
  58. /// 此方法的内容。   
  59. /// summary>   
  60. private void initializecomponent()   
  61. {   
  62. this.dg.itemdatabound += new system.web.ui.webcontrols.datagriditemeventhandler(this.dg_itemdatabound);   
  63. this.button1.click += new system.eventhandler(this.button1_click);   
  64. this.load += new system.eventhandler(this.page_load);   
  65. }   
  66. #endregion   
  67. private void button1_click(object sender, system.eventargs e)   
  68. {   
  69. system.web.ui.webcontrols.checkbox chkexport;   
  70. foreach (datagriditem dgitem in dg.items)   
  71. {   
  72. chkexport=(checkbox)dgitem.findcontrol("chkexport");   
  73. if(chkexport.checked)   
  74. {   
  75. response.write("<script>alert("+dgitem.cells[2].text+"和"+dgitem.cells[3].text+")script>");   
  76. }   
  77. }   
  78. }   
  79. private void dg_itemdatabound(object sender, system.web.ui.webcontrols.datagriditemeventargs e)   
  80. {   
  81. if(e.item.itemindex<0) return;   
  82. if(e.item.itemtype == listitemtype.item || e.item.itemtype == listitemtype.alternatingitem)   
  83. {   
  84. system.web.ui.webcontrols.checkbox chkexport;   
  85. chkexport=(checkbox)e.item.findcontrol("chkexport");   
  86. chkexport.attributes.add("onclick","setcheckboxstate()");   
  87. e.item.attributes.add("onmouseover","currentcolor=this.style.backgroundcolor;this.style.backgroundcolor=48d1cc");   
  88. e.item.attributes.add("onmouseout","this.style.backgroundcolor=currentcolor");  
  89. }   
  90. }   
  91. }   
  92. }   

以上就是笔者实现C# CheckBox单选事件的方法,希望能给大家带来帮助。

【编辑推荐】

  1. 获取系统的C#鼠标指针相关代码解析
  2. 详解如何定义C#鼠标指针的形状
  3. CCNA考试640-802的主要考点
  4. 详解C# MessageBox用法
  5. C#和Java特点简单介绍
责任编辑:阡陌 来源: 51cto.com
相关推荐

2009-09-08 14:21:38

CheckBox翻页选

2009-09-08 10:37:57

C#遍历CheckBo

2009-08-27 18:05:54

C#索引功能

2009-08-21 17:11:05

C#摄像头

2009-09-07 15:27:04

C# MessageB

2009-08-13 10:15:50

C#读取Excel

2009-09-02 17:29:10

C# TextBox换

2009-09-09 10:32:12

C# CheckBox

2009-08-07 13:03:10

C#控件数组

2009-09-02 14:33:57

C#类实现接口

2009-08-31 17:53:20

C#实现索引器

2009-08-26 10:43:14

C#实现打印功能

2009-08-26 09:22:44

C#实现打印功能

2009-06-02 10:10:15

C#

2009-09-09 10:47:29

C# CheckBox

2009-08-28 15:19:17

C#实现缩略图

2009-09-02 18:03:19

C#实现泛型类

2009-09-03 14:55:56

C#实现DataGri

2009-09-08 16:01:58

C# ListBox

2009-09-04 09:27:48

C#调用浏览器
点赞
收藏

51CTO技术栈公众号