一列中显示不同的编辑风格

需求描述

有的时候我们希望在一列中根据不同条件显示不同的编辑风格,如:编辑框、单选按钮、复选框等。而填报表中对于编辑风格是没有办法写表达式控制的。那究竟该如何实现这个需求呢?

接下来我们来看看在js中通过DOM回写各类编辑风格,本例以编辑框和单选按钮为例。

实现步骤

首先我们制作一张填报表如下图

在发布该报表的jsp中定义如下操作

<script language=”javascript”>

var count = document.getElementById(“report1_A1″).innerText //获得扩展格数目

document.getElementById(“report1_B1″).innerHTML = “<input type=radio name=report1_B1_rb οnclick=_setRowColBackColor(this.parentElement);if( this.checked ) report1_B1.value = ’1′;else report1_B1.value=”;if(!autoCalcOnlyOnSubmit)try{report1_autoCalc( ‘B1′ );}catch(ex){};report1.changed = true;>牛叉1<input type=radio name=report1_B1_rb οnclick=_setRowColBackColor(this.parentElement);if( this.checked ) report1_B1.value = ’2′;else report1_B1.value=”;if(!autoCalcOnlyOnSubmit)try{report1_autoCalc( ‘B1′ );}catch(ex){};report1.changed = true;>牛叉2″; //回写单选按钮

for(var i=2;i<=count+1;i++){

if(i%2==0){

document.getElementById(“report1_B”+i).innerHTML = “<input type=radio name=report1_B”+i+”_rb οnclick=_setRowColBackColor(this.parentElement);if( this.checked ) report1_B”+i+”.value = ’1′;else report1_B”+i+”.value=”;if(!autoCalcOnlyOnSubmit)try{report1_autoCalc( ‘B”+i+”‘ );}catch(ex){};report1.changed = true;>牛叉1<input type=radio name=report1_B”+i+”_rb οnclick=_setRowColBackColor(this.parentElement);if( this.checked ) report1_B”+i+”.value = ’2′;else report1_B”+i+”.value=”;if(!autoCalcOnlyOnSubmit)try{report1_autoCalc( ‘B”+i+”‘ );}catch(ex){};report1.changed = true;>牛叉2″; //当行数为偶数时回写单选按钮

}else{ //否则回写编辑框

//alert(report1.rows.length);

var currRow = report1.rows[i-1];

var currCell = currRow.cells[1];//取得指定行列(单元格)第二列

currCell.οnclick=_displayEditor; //设置为可写

}

}

</script>

预览结果如下图:

总结

其实每种编辑风格在页面显示的时候我们通过查看页面源代码的方式都能够获得,当想显示何种编辑风格的时候,参照源代码中的方式操作就可以了。

另外,此例只用于显示,填报时可能填报不了选择的数据,这方面需要我们根据该例继续进行扩展实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值