我正在使用Cognos v10.1。我创建了一个包含13个可选提示的报告。由于在单个页面中累积相同内容并且所有提示都是可选的非常困难,因此我尝试为复选框编写javascript代码。根据复选框中的选择,我想显示提示。我得到了结果,但提示有问题。在我选择的任何提示中选择某些值之前,页面会刷新。如何防止页面刷新?你能建议一个解决方案吗?提前谢谢。
答案 0 :(得分:2)
我建议在Cognos的范围内工作,而不是尝试自定义编写JS。你将不可避免地碰到他们的一些内置函数,这将导致奇怪的行为,这将导致跨版本和潜在的跨浏览器问题。
相反,为什么不是2个提示页面:
答案 1 :(得分:2)
如果任何Cognos提示是级联提示(Properties->'Cascade Source'不是空白的话),则会在选择父提示后触发提示页面刷新。
此外,任何将“自动提交”属性设置为“是”的提示将在选中后触发页面提交(假设所有必需提示都已填写)或刷新提示页面(如果尚未填写任何所需提示)
Toddnappi的解决方案是我成功用于这类情况的解决方案,我强烈建议尽可能使用它。 Cognos javascript API仅限于10.1,但可以预测。没有理由你不能按照你的方式使解决方案发挥作用。
请记住,在10.2中,javascript API得到了极大的改进,如果您对自定义构建的javascript页面有很多需求,可能值得一试。
编辑:刚刚做了一个测试,我在提示页面中隐藏/显示了一个可选提示:
隐藏区域之前的HTML项目:
<script>
function checkDisplayPeriod() {
var chkBox = document.getElementById("checkBox1");
var divPeriod = document.getElementById("divHidePeriodPrompt");
if (chkBox.checked) {
divPeriod.style.display = 'none';
} else {
divPeriod.style.display = 'block';
}
}
</script>
<input type="checkbox" id="checkBox1" onclick="checkDisplayPeriod()" />
<div id="divHidePeriodPrompt">
区域后面的代码:
</div>
首次加载时的页面:
点击后(无刷新):