参数模板动态隐藏下拉框

一些客户需要在参数模板中实现下拉列表框的动态隐藏,也就是有两个或多个下拉列表框,一些列表框动态的根据其他下拉框的值显示或隐藏,在集智平台报表中封装了一个名字叫做_selectValueChanged( cellId, newValue )js函数,这个函数是绑定到下拉列表框的,在下拉框选中数值后会调用这个js,这样就可以通过自己重写这个js来实现下拉框的动态显示和隐藏。

实现思路:

在显示参数表单JSP里写一个名为_selectValueChangedjs函数,在此函数中实现用户需要的功能,函数格式为

_selectValueChanged( cellId, newValue ){ ……. }

其中参数cellId代表下拉框值发生变化的单元格idnewValue代表变化后的新值

例如:

function _selectValueChanged( cellId, newValue ) {

if( cellId != “param1_A1″ ) return;

if( newValue==”1″ ) document.getElementById( “param1_C1″ ).style.display = “block”;

if( newValue==”2″ ) document.getElementById( “param1_C1″ ).style.display = “none”; }

使用举例:

制作一张使用下拉框的参数模板,参数模板中的A1B1单元格都是下拉框,具体的样式如下图所示:

B1单元格的设置跟A1格相同。

制作一张跟参数模板相关联的主报表,报表的样式如下图所示:

在发布报表的jsp中写如下的一个js

function _selectValueChanged( cellId, newValue ) {

if( cellId != “form1_A1″ ) return;

if( newValue==”1″ ) document.getElementById( “form1_B1″ ).style.display = “block”;

if( newValue==”2″ ) document.getElementById( “form1_B1″ ).style.display = “none”;

}

然后使用增加jsjsp发布报表,可以查看到效果,如果第一个下拉框的值是1,那么后面的下拉框是显示的,如果是2的话后面的下拉框是隐藏的。

具体效果如下图所示:

下拉框显示的

隐藏的下拉框

这样动态隐藏下拉框的需求就实现了,事实上也可以通过这个绑定的js去处理其他的业务,在这里不一一的介绍了。