所有 checkbox 加上 checked="checked"
<script language="javascript">
function CheckAll(form){
for (var i=0i<form.elements.lengthi++){
var e = form.elements[i]
if (e.Name != ""chkAll""&&e.disabled==false)
e.checked = form.chkAll.checked
}
}
</script>
声明:此答案来自其他他处。关于swing界面开发,楼主可以自定义自己的组件,写个类继承JTable,就可以完成你需要的所有功能。
对于表格中需要对某列进行全选时,往往需要在对应列的表头添加一个checkBox控件方便用户 *** 作,在Java中的具体 *** 作如下:
1.首先构建一个继承于DefaultTableCellRenderer或实现了TableCellRenderer的类,类中主要包含一个getTableCellRendererComponent方法
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
if (value instanceof Boolean)
{
Boolean b = (Boolean) value
setSelected(b.booleanValue())//显示值
}
return this
}
2.获得表头 *** 作类并在需要的列调用setHeaderRenderer方法
table.getColumnModel().getColumn(6).setHeaderRenderer(new CheckBoxAllSelect())
3.如想响应鼠标事件可以调用表头类的消息侦听方法
header.setUpdateTableInRealTime(true)
header.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
int colIndex = table.getColumnModel().getColumnIndexAtX(e.getX())
if( colIndex==6 )
{
flag = !flag
table.getColumnModel().getColumn(6).setHeaderValue(flag)
// header.repaint()
}
}
})
header.setReorderingAllowed(true)
注:添加控件的值是由getTableCellRendererComponent方法中的value参数传递的,相对应的设置值的方法就是setHeaderValue;
标题太长,不知道怎么用更准确的语言来形容这个,呵呵:) 初学jsf时遇到不少的问题,比如在客端视图中有一个<table>标签的一列均是<input type="checkbox" />标签如<table><tr><td><input type="checkbox" /></td><td>name</td></tr><tr><td><input ="checkbox" /></td><td>name</td></tr><table>.要实现所有的<input>标签的全选在jsp中我们可以给所有<input>标签的name属性赋一个相同的值再用javascript进行循环处理就可以了. 但是在jsf中就不是那么容易的事了,因为jsf会给所有的<input>标签生成一个不相同值的id属性和一个不同值name属性.
来看看jsf中的解决方案
jsf中 <h:dataTable>通常绑定一个ListDataModel 或者是ArrayDataModel等数据模型.而该数据模型通常封装List,或都Array之类的对象,这些对象的元素都是一些bean 对象,把数据库中表的字段映射成bean 再给该bean添加一个额外boolean型的属性,用来绑定 <h:selectBooleanCheckbox>组件,在backing bean中就可以通过判断这个绑定值来处理<h:dataTable>组件选中的行对应的数据模型所拥有的bean了. 那么如何在页面实现<input type="checkbox"/>的全选呢,还是用javascript 只是javascript要先对<table>标签进行 *** 作了 这就没jsp中那么直观. js代码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)