- 浏览: 321540 次
- 性别:
文章分类
最新评论
-
i042416:
分析在哪?
angular分析 -
何盆盆:
你好,请问您这是Extjs3还是Extjs4
ExtJs源码分析与学习—ExtJs事件机制(一) -
124753561:
引用引用引用引用引用[u][u][u][u][i][i][i] ...
Subvision SVN 服务端与客户端的安装 -
谷超:
请问一下例子中itext是什么版本的?
利用iText生成word文档例子参考 -
geosmart:
正好要用到执行字符串中方法,学习了
java中利用反射机制实现调用给定为字符串的方法名
以下是简单的实现了table标签单行、多行的选择。建议用ext来实现该功能,美观和效果比这个好。
如果不用ext的话,以下的功能完全可以满足table多行选择的需求
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>table列表中结合ctrl,shift实现多行的选择</title> <style type="text/css"> TABLE{ FONT-SIZE: 9pt; background-color: #D9E5A9; } TABLE.list{ BORDER-BOTTOM: 1 none; BORDER-LEFT: 1 none; BORDER-RIGHT: 1 none; BORDER-TOP: 1 none; FONT: messagebox; overflow: hidden FONT-SIZE: 9pt; } TABLE.list TR.first{ BACKGROUND-COLOR: rgb(255,255,255); COLOR: black; FONT: messagebox; cursor:pointer; FONT-SIZE: 9pt; } TABLE.list TR.second{ BACKGROUND-COLOR: rgb(240,240,240); COLOR: black; FONT: messagebox; cursor:pointer; } TABLE.list TR.mouseover{ BACKGROUND-COLOR: #D7DAFF; cursor:pointer; } TABLE.list TR.selected{ BACKGROUND-COLOR: royalblue; COLOR: white; FONT: messagebox; cursor:pointer; } </style> <script> var ctrl = false; var shift = false; var tableStyle;//存放table各列的样式 var ifFirst=true;//用来第一次初始化table各列的样式 var selectNum=0;//选择行的个数,用来判断选中行的个数 var rowI;//当前行序号 var selectElement;//选择行对象 //处理按ctrl和shift键 document.onkeydown = function () { if (event.keyCode == 17) { ctrl = true; } else { if (event.keyCode == 16) { shift = true; } } }; document.onkeyup = function () { ctrl = false; shift = false; }; //鼠标经过时 function hilite(theTR){ //鼠标第一次经过时初始化 if(ifFirst){ //遍历table所有行的样式,并放到数组tableStyle中,第一次点击的时候遍历 tableStyle=new Array(infoTable.rows.length); for (var i = 0; i < infoTable.rows.length; i++) { tableStyle[i]=infoTable.rows(i).className; } ifFirst=false; } if(theTR.className != "selected"){ theTR.className = "mouseover"; } } //鼠标离开时 function restore(theTR){ if(theTR.className != "selected") theTR.className = tableStyle[theTR.rowIndex] } //鼠标按下时 //每行中selectState属性可以在需要的时候判断是否选中某一行或某几行 function clickRow(theTR) { if (ctrl && shift) {//同时按下ctrl和shift则不操作 return; } rowI=theTR.rowIndex; //如果选择的是复选框按钮时 if(event.srcElement.tagName=="INPUT" && event.srcElement.type=="checkbox" &&!shift ){ var state = event.srcElement.checked; if(state){ infoTable.rows(rowI).className = "selected"; infoTable.rows(rowI).selectState = "yes"; selectNum++; }else{ infoTable.rows(rowI).className = tableStyle[rowI]; infoTable.rows(rowI).selectState = "no"; selectNum--; } for (var i = 1; i < infoTable.rows.length; i++) { if(infoTable.rows(i).selectState == "yes"){ //赋当前操作行对象 selectElement=infoTable.rows(i); } } return; } if (!ctrl && !shift) {//没有按ctrl或shift时 for (var i = 1; i < infoTable.rows.length; i++) { try { infoTable.rows(i).cells(0).firstChild.checked = false; } catch (e) { //页面中没有复选框或单选框时 } infoTable.rows(i).className = tableStyle[i]; infoTable.rows(i).selectState = "no"; } try { infoTable.rows(rowI).cells(0).firstChild.checked = true; } catch (e) { //页面中没有复选框或单选框时 } infoTable.rows(rowI).className = "selected"; infoTable.rows(rowI).selectState = "yes"; infoTable.currentRow = rowI; selectNum=1; } if (ctrl) {//按ctrl键时 if(infoTable.rows(rowI).className == "selected"){ try { infoTable.rows(rowI).cells(0).firstChild.checked = false; } catch (e) { //页面中没有复选框或单选框时 } infoTable.rows(rowI).className = tableStyle[rowI]; infoTable.rows(rowI).selectState = "no"; selectNum--; }else{ try { infoTable.rows(rowI).cells(0).firstChild.checked = true; } catch (e) { //页面中没有复选框或单选框时 } infoTable.rows(rowI).className = "selected"; infoTable.rows(rowI).selectState = "yes"; selectNum++; } } if (shift) {//按shift键时 for (var i = 1; i < infoTable.rows.length; i++) { try { infoTable.rows(i).cells(0).firstChild.checked = false; } catch (e) { //页面中没有复选框或单选框时 } infoTable.rows(i).className = tableStyle[i]; infoTable.rows(rowI).selectState = "no"; } if (rowI < infoTable.currentRow) { for (var i = rowI; i <= infoTable.currentRow; i++) { try { infoTable.rows(parseInt(i)).cells(0).firstChild.checked = true; } catch (e) { //页面中没有复选框或单选框时 } infoTable.rows(parseInt(i)).className = "selected"; infoTable.rows(parseInt(i)).selectState = "yes"; } } else { for (var i = infoTable.currentRow; i <= rowI; i++) { try { infoTable.rows(parseInt(i)).cells(0).firstChild.checked = true; } catch (e) { //页面中没有复选框或单选框时 } infoTable.rows(parseInt(i)).className = "selected"; infoTable.rows(parseInt(i)).selectState = "yes"; } } selectNum=Math.abs(parseInt(infoTable.currentRow)-rowI)+1; } for (var i = 1; i < infoTable.rows.length; i++) { if(infoTable.rows(i).selectState == "yes"){ //赋当前操作行对象 selectElement=infoTable.rows(i); } } } </script> </head> <body> 利用ctrl 和shift实现了table标签的多行选择,该实现可以根据需求添加需要实现功能的脚本,<br/> 如判断是否选择了行,选择了多行等。这里省略 <br/><br/> <table width="400" border="0" cellspacing="1" cellpadding="3" currentRow="1" id="infoTable" bgcolor="#cccccc" class="list"> <tr> <th colspan="2" align="center">标题</th> </tr> <tr selectState="no" class="second" onMouseover="hilite(this)" onMouseout="restore(this)" onclick="clickRow(this)"> <td> <input type=checkbox checked> </td> <td> </td> </tr> <tr selectState="no" class="first" onMouseover="hilite(this)" onMouseout="restore(this)" onclick="clickRow(this)"> <td> <input type=checkbox> </td> <td> </td> </tr> <tr selectState="no" class="second" onMouseover="hilite(this)" onMouseout="restore(this)" onclick="clickRow(this)"> <td> <input type=checkbox> </td> <td> </td> </tr> <tr selectState="no" class="first" onMouseover="hilite(this)" onMouseout="restore(this)" onclick="clickRow(this)"> <td> <input type=checkbox> </td> <td> </td> </tr> <tr selectState="no" class="second" onMouseover="hilite(this)" onMouseout="restore(this)" onclick="clickRow(this)"> <td> <input type=checkbox> </td> <td> </td> </tr> <tr selectState="no" class="first" onMouseover="hilite(this)" onMouseout="restore(this)" onclick="clickRow(this)"> <td> <input type=checkbox> </td> <td> </td> </tr> <tr selectState="no" class="second" onMouseover="hilite(this)" onMouseout="restore(this)" onclick="clickRow(this)"> <td> <input type=checkbox> </td> <td> </td> </tr> <tr selectState="no" class="first" onMouseover="hilite(this)" onMouseout="restore(this)" onclick="clickRow(this)"> <td> <input type=checkbox> </td> <td> </td> </tr> </table> </body> </html>
发表评论
-
angular分析
2014-07-08 13:49 1067angular分析 -
键盘KeyCode值列表
2012-08-28 18:13 1106keycode 0 = keycode 1 = k ... -
JavaScript中的delete操作符
2012-04-20 14:17 1500主要从以下几个方面说 ... -
javascript性能优化之一
2012-04-04 21:01 0该篇文章转自 http://blog.sina.com.cn ... -
DOM节点中属性nodeName、nodeType和nodeValue的区别
2012-03-20 17:31 3744(一)nodeName 属性含有某个节点的名称。 元素节 ... -
javascript正则表达式总结
2012-03-16 13:53 1499正则表达式中特殊字符的含义 1、^ ^匹配输入字符串 ... -
javascript常用知识点总结(不断完善)
2011-07-04 17:15 1174一、函数中调用函数的实现 /** * 以下为 ... -
js对象的克隆
2011-06-14 15:02 2098由于js是采用引用传值的,故修改任何一个对象,其关 ... -
javascript中静态方法、实例方法、内部方法和原型的一点见解
2011-06-11 15:54 85951、静态方法的定义 var BaseClass = f ... -
javascript contains和compareDocumentPosition 方法来确定是否HTML节点
2011-03-30 17:41 14941、DOMElement.contains(DOMNode) ... -
事件mouseenter和事件mouseleave
2011-03-14 14:52 1821为了鼠标操作起来方便,IE实现了mouseenter 和m ... -
浏览器事件机制与自定义事件的实现
2011-03-14 14:03 4047一、 0 级 DOM 上的事件 ... -
JavaScript中Array(数组)的属性和方法
2009-06-03 17:13 1406数组有四种定义的方式 ... -
表格自动换行
2008-12-02 11:06 3050有时表格中显示的内容不会根据长度的加长而自动换行,显示的效果很 ... -
让表格有滚动条的实现
2008-12-02 10:23 5631主要是用div样式来控制 例如 <html> ... -
利用javascript验证输入框中的值是否为日期格式
2008-09-02 15:45 127911、判断是否为年月日时间格式 <script> ... -
web一些值得珍藏的脚本代码
2008-08-01 09:50 13201. oncontextmenu="window.e ... -
div垂直和水平居中
2008-06-29 16:34 1743<div id="div_1" st ... -
JS创建日历控件
2008-06-29 16:32 1866// JavaScript Document /******* ... -
JS获取系统当前日期和时间
2008-06-29 16:31 6752<!DOCTYPE HTML PUBLIC " ...
相关推荐
白色简洁风格的学术交流会议源码下载.zip
内容概要:本文提出了利用交变电流场测量(ACFM)技术对水下结构中的缺陷进行可视化和智能识别的方法。通过对缺陷引起畸变磁场的分析,开发了梯度成像算法作为图像预处理方法,突显了缺陷的视觉形态。实验验证了梯度成像算法的有效性,并利用卷积神经网络(CNN)深度学习算法识别预处理后的灰度图样本。实验结果显示,电流扰动理论澄清了特征信号与缺陷形态之间的关系,单裂纹、不规则裂纹和腐蚀等缺陷可以被智能识别和准确评估。 适合人群:从事水下结构检测的研究人员和技术人员,以及对非破坏性检测技术感兴趣的工程领域人士。 使用场景及目标:① 海洋钻井平台、管道、海底油气处理设施等水下结构的缺陷检测;② 利用交变电流场测量技术和图像处理技术提高缺陷识别的准确性和智能化程度。 其他说明:本文不仅提出了交变电流场测量技术的新方法,还通过实验证明了这些方法的有效性,为实际应用提供了技术支持。
Neck Deep - In Bloom [mqms2].mgg2.flac
基于ESO的永磁同步电机无感FOC 1.采用线性扩张状态观测器(LESO)估计电机反电势,利用锁相环从反电势中提取位置和转速信息,从而实现无位置传感器控制; 2.提供算法对应的参考文献和仿真模型。 购买赠送PMSM控制相关电子资料。 仿真模型纯手工搭建,不是从网络上复制得到。 仿真模型仅供学习参考。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
三相逆变 单相 三相逆变器 SPWM ---stm32主控(输入、输出具体可根据需要设定),本逆变器可以二次开发。 本内容只包括 逆变程序,实现变频(0~100Hz)、变压调节,均有外接按键控制(使用C语言实现)。
NSConditionException如何解决.md
白色简洁风格的房产交易中心企业网站源码下载.zip
水果分拣机15可编辑全套技术资料100%好用.zip
内容概要:本文为《1+X移动互联网应用开发初级》课程的期中考试试卷解析。解析涵盖了Java开发入门基础知识,主要包括Android中SQLite数据库操作、ContentProvider使用、BroadcastReceiver、Intent传递数据、Activity生命周期、Service生命周期管理、文件操作模式、通知管理、JSON和XML解析、权限管理等内容。通过对各个题目的解析,帮助学生更好地理解和掌握移动互联网应用开发的基础知识和技术。 适合人群:正在学习《1+X移动互联网应用开发初级》课程的学生,尤其是网络21班的学生。 使用场景及目标:①帮助学生理解和掌握Android开发的基础知识点;②提高学生的实际操作能力,尤其是在期中考试后的查漏补缺。 阅读建议:建议学生在阅读解析时,结合教材和实践操作,加深对各知识点的理解。同时,可以通过模拟题进行练习,巩固学习成果。
自动送料切割机sw可编辑全套技术资料100%好用.zip
ClosedChannelException(解决方案).md
长焊缝打磨机step全套技术资料100%好用.zip
从给定的文件信息来看,核心知识点聚焦于内部审计业务的实施,特别是内部审计师如何遵循规范、标准和最佳实践来进行审计工作。以下是对关键知识点的深入解析: ### 内部审计业务实施的关键要素 #### 理解内部审计业务全过程 内部审计业务覆盖了从计划、实施、报告到后续跟踪的全过程,要求内部审计师具备全面的专业技能和严谨的工作态度。这一过程旨在确保组织的风险管理、控制和治理机制的有效性。 #### 核心业务类型 内部审计主要包括确认和咨询两大业务类型。确认服务侧重于评估组织的控制和风险管理程序,而咨询服务则更注重提供改进和优化现有流程的建议。 ### 实施内部审计的依据与标准 #### IIA职业实务框架 - **标准与道德规范**:包括内部审计实务标准和职业道德规范,前者指导内部审计活动的执行,后者强调审计师的公正、客观、保密和胜任能力。 - **实务公告**:提供非强制性的指导,涉及内部审计的特定操作流程和程序。 - **发展与实务帮助**:涵盖各种专业资源,如研究资料、书籍和培训课程,为审计人员提供深入的学习和支持。 #### 法律、法规和其他标准 除了IIA框架外,内部审计还应考虑适用
IncompatibleClassChangeError(解决方案).md
html渲染器,粘贴html代码到这个渲染器即可渲染出对应的效果
白色简洁风格的时尚宝马老爷车企业网站模板下载.zip
白色宽屏风格的贸易商务企业网站模板.zip
白色宽屏风格的旅游路线推荐整站网站源码下载.zip
白色简洁风格的社交博客网站后台系统源码下载.zip
实惠 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Calculater extends JFrame implements ActionListener。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。