获取选定CheckBox控件的值及js实现勾选时勾选相关父子关系
来源:互联网 发布:阿里云 域名注册备案 编辑:程序博客网 时间:2024/05/18 11:48
页面代码如下:
<script src="../../JS/jquery-1.4.2.min.js" type="text/javascript"></script><asp:DataGrid ID="dgData" runat="server" SkinID="IDGrid" OnItemDataBound="dgData_ItemDataBound"> <Columns> <asp:TemplateColumn HeaderStyle-Width="3%" ItemStyle-HorizontalAlign="Center"> <HeaderTemplate> <input id="chkIDV4" runat="server" class="idbox" type="checkbox" onclick="selectTableAll(dgData,this)" /></HeaderTemplate> <ItemTemplate> <input id="chkIDV3" runat="server" class="idbox" type="checkbox" onclick="selectParentNote(dgData,this)" value='<%# Eval("SubjectID") %>' parentid='<%# Eval("ParentSubjectID") %>' subjectno='<%# Eval("SubjectNo")%>' subjectname='<%# Eval("SubjectName")%>' /> </ItemTemplate> </asp:TemplateColumn> </asp:DataGrid>
后台代码如下:
1、获取选中的CheckBox控件的值
//此处循环判断每一行的复选框选中没有,并取出相关的值 HtmlInputCheckBox cb = new HtmlInputCheckBox();//注意此处的控件类型 List<string> SubjecID = new List<string>(); Table tab = (Table)(this.dgData.Controls[0]); TableRow tabTr = tab.Rows[0]; //获取<HeaderTemplate>中控件chkIDV4 cb = (HtmlInputCheckBox)(tabTr.FindControl("chkIDV4")); if (!cb.Checked)//判断是否全选 { foreach (DataGridItem dgI in this.dgData.Items) { cb = (HtmlInputCheckBox)dgI.Cells[0].FindControl("chkIDV3"); if (cb.Checked)//判断选择的行 { SubjecID.Add(cb.Value.ToString().Trim()); } }
js文件代码如下:
2、selectParentNote实现如果选择父的话,默认选中所有子;如果选择一个子的话,默认选中他的父
3、selectRow实现多选,无父子关系限制
// 获取表格table中第rowIndex行的标记为tagName的HTML控件数组中的第tagIndex个控件function getObjTR(table, rowIndex, tagName, tagIndex){ var obj = null; if (table.rows(rowIndex).getElementsByTagName(tagName).length > tagIndex) { obj = table.rows(rowIndex).getElementsByTagName(tagName).item(tagIndex); } return obj;}// 单击复选框选择某行(单击全选复选框时调用)function selectRowFromSelectAll(obj){ var row = obj.parentNode.parentNode; var table = row.parentNode.parentNode; if (obj.type.toLowerCase() == "checkbox") { row.className = obj.checked ? 'dg_rowselected' : (row.rowIndex % 2 == 1 ? 'dg_row' : 'dg_altrow'); } else if (obj.type.toLowerCase() == "radio") { for (var i = 0; i < table.rows.length; i++) { table.rows(i).className = (table.rows(i).rowIndex % 2 == 1 ? 'dg_row' : 'dg_altrow'); } row.className = 'dg_rowselected'; } rowClass = row.className;}//如果选择父的话,默认选中所有子;如果选择一个子的话,默认选中他的父function selectParentNote(table, chk){ selectRowFromSelectAll(chk); for( var i = 0 ;i < table.rows.length; i++) { var opt = getObjTR(table, i, "input", 0); if(opt != null && opt.type.toLowerCase() == "checkbox") { //子节点勾选则父节点也勾选上 if(opt.value == chk.parentid && chk.checked) { opt.checked=chk.checked; selectRowFromSelectAll(opt);//为是否勾选的行更改相应样式 } //判断父节点是否勾选,若勾选则其子都勾选,反之则其子都不勾选 if(chk.value == opt.parentid) { opt.checked=chk.checked; selectRowFromSelectAll(opt); selectParentNote(table,opt); } } }}//单击表格的全选复选框,只全选本表格的所有行function selectTableAll(table, chk){ for (var i = 1; i < table.rows.length; i++) { var opt = getObjTR(table, i, "input", 0); if (opt != null && opt.type.toLowerCase() == "checkbox" && opt.checked != chk.checked) { opt.checked = chk.checked; selectRowFromSelectAll(opt); } }}//单击选择框选择某行(单击某行的选择框或单元格时调用,如为复选,则检查是否全选)function selectRow(obj){ var row = obj.parentNode.parentNode; var table = row.parentNode.parentNode; if (obj.type.toLowerCase() == "checkbox") { row.className = obj.checked ? 'dg_rowselected' : (row.rowIndex % 2 == 1 ? 'dg_row' : 'dg_altrow'); var chkAll = getObjTR(table, 0, "input", 0); if (chkAll != null && chkAll.type.toLowerCase() == "checkbox") { checkSelectAll(table); } } else if (obj.type.toLowerCase() == "radio") { for (var i = 1; i < table.rows.length; i++) { if(table.rows(i).className=='dg_rowselected') { table.rows(i).className = (table.rows(i).rowIndex % 2 == 1 ? 'dg_row' : 'dg_altrow'); getObjC(table.rows(i),"input",0).checked=false; break; } } row.className = 'dg_rowselected'; } rowClass = row.className;}
- 获取选定CheckBox控件的值及js实现勾选时勾选相关父子关系
- TreeView控件的CheckBox自动实现父子节点递归选定
- GridView控件的CheckBox选定删除记录,总是无法实现
- 获取 checkbox 和 radio 选定的值,以及设默认值
- js获取列表控件某行下拉框的选定值
- JS:checkbox 全选及传值相关
- js,jquery获取checkbox的值及判断是否选择
- Js获取下拉框选定项的值和文本
- Js获取下拉框选定项的值和文本
- js获取下拉框选定项的值和文本
- js获取checkbox的值
- 获取数据控件的选定行信息
- 0007-MFC--Tree控件的checkbox实现及取值
- checkbox 取选定值
- QTabWidget改变了控件的父子关系
- QTabWidget改变了控件的父子关系 .
- jquery对select的选定和获取选定值
- hibernate的父子关系及inverse
- DB2 执行SQL文件
- Python随笔之文档字符串(DocStrings)
- 【转】Linux--系统时间/硬件时间的设置
- java中synchronized用法
- db2 常用命令
- 获取选定CheckBox控件的值及js实现勾选时勾选相关父子关系
- linux 查找字符串
- smartforms句柄与以簇的方式存储数据。
- Ubuntu配置apache
- antlr笔记
- jQuery Tree插件-zTree v3.0 beta发布
- 如何使用 Editbin 调整 SQL Server 线程的堆栈大小(dump)
- android平台上GPS信号的获取和展示(二)之响应与信号解析
- map两种遍历方法