参数模板动态隐藏下拉框
参数模板动态隐藏下拉框
一些客户需要在参数模板中实现下拉列表框的动态隐藏,也就是有两个或多个下拉列表框,一些列表框动态的根据其他下拉框的值显示或隐藏。润乾报表中封装了一个名字叫做 _selectValueChanged( cellId, newValue ) 的 js 函数,这个函数是绑定到下拉列表框的,在下拉框选中数值后会调用这个 js ,这样就可以通过自己重写这个 js 来实现下拉框的动态显示和隐藏。
实现思路:
在显示参数表单的 JSP 里写一个名为 _selectValueChanged 的 js 函数,在此函数中实现用户需要的功能,函数格式为
_selectValueChanged( cellId, newValue ){ ……. }
其中参数 cellId 代表下拉框值发生变化的单元格 id , newValue 代表变化后的新值
例如:
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”; }
使用举例:
制作一张使用下拉框的参数模板,参数模板中的 A1 和 B1 单元格都是下拉框,具体的样式如下图所示:
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”;
}
然后使用增加 js 的 jsp 发布报表,可以查看到效果,如果第一个下拉框的值是 1 ,那么后面的下拉框是显示的,如果是 2 的话后面的下拉框是隐藏的。
具体效果如下图所示:
下拉框显示的
隐藏的下拉框
这样动态隐藏下拉框的需求就实现了,事实上也可以通过这个绑定的 js 去处理其他的业务,在这里不一一的介绍了。