(个人总结更新)报表常用JS事件介绍:
1、 JS事件控制隐藏行:
$("#r-1-0").toggle(); //隐藏第二行(由0开始算)
$("#r-1-0").hide(); //隐藏第二行
$("#r-1-0").show(); //显示第二行
toggle()缺省为先false后true的循环;false表示隐藏;true表示显示。
2、 JS事件将当前报表生成文件:
_g('${sessionID}').writeReport();
此功能可以应用与数据提交,储存至后台;也可以用于后台数据文件生成,用于其他报表查询此文件数据;也可以用于数据文件下载。 目前在迈安元数据软件中广泛应用,结合CRD和DPS,可以很灵活地提交数据,条件性筛选和提交部分数据等。
3、JS事件获取控件所在行或所在行数据时,
获取方式:
var $td=$(this.editComp).parents("td")[0];
var rownum =contentPane.curLGP.getTDRow($td)-1;
各控件的属性:
文本控件:editComp 文本域控件:editComp
数字控件:editComp 密码控件:editComp
按钮控件:$btn 复选框控件:$btn
单选复选框控件:$container 复选框组控件:$container
下拉框控件:editComp 下拉复选框控件:editComp
日期控件:editComp 文件控件:$uploadForm
列表控件:element 下拉树控件:editComp
视图树控件:element
4、控件编辑后JS事件,及时更新控件值:
编辑后事件及时更新控件值:
文本框:
var value=this.getValue();
contentPane.setCellValue(7,2,value);//重新写回控件所在单元格
下拉框:
contentPane.curLGP.selectTDCell(); //移出焦点
4、 在方法4方法中的缺陷是,当报表中控件数太多时,一一写入JS事件,对项目组人员来说很费力,也不好维护;此时可以在最后的用于提交的按钮上,写入JS事件,配合延迟事件,移出光标,更加实用可靠,方便维护:
移出光标:
function remove(){
function next(){
var wb=contentPane.getCellValue(1,1);
}
return next;
}
var work=remove();
setTimeout(work,0);
6、鼠标移上、移出、点击时,单元格颜色做出变化:
添加加载结束事件之后,在js输入框中输入如下所示语句:
$('.linkspan').mouseover(function(){$(this).css('color','red');}); //鼠标移上
$('.linkspan').mouseleave(function(){$(this).css('color','blue');}); //鼠标移出
$('.linkspan').mousedown(function(){$(this).css('color','#C0C0C0');}); //鼠标点击
7、JS实现填报报表编辑后或数据变化后不显示红角:
添加加载结束事件:
contentPane.on("cellselect", function(td){
$('.dirty').removeClass('dirty');
}
);
8、JS解决弹出框或刷新页面被阻止问题:(在代码中前置即可)
window.onbeforeunload = function(e) {
e.stopPropagation()
}
9、 JS控制控件是否可用/可见:
contentPane.getWidgetByName("A4").setVisible(true);//设置A4单元格数据和控件可见
setEnable(boolean):设置是否可用,true为可用,false为不可用;
setVisible(boolean):设置是否可见,true为可见,false为不可见;
10、 JS实现隐藏部分sheet,可用于用户报表sheet权限控制:
(隐藏sheet名为1、2、4的页面,并避免打开本应隐藏的默认sheet)
var sheet = [1, 2, 4];
$.each(sheet,function(index, value) {
$('[title="' + value + '"]').hide();
})
$.each($('.mr-sheetbutton-container'),function(index, value) {
if(!($(value).is(':hidden'))){
$(value).click();
return false;
}
})
11、单选复选框控件设置间距,控件中添加初始化事件:
$('.mr-group-span').css("margin-left","40px")