我正在使用 Cognos v10.1 。我正在创建一个包含 13 个可选提示的报告。由于很难在单个页面中累积相同的内容并且所有提示都是可选的,因此我正在尝试为复选框编写 javascript 代码。根据复选框中的选择,我想显示提示。我得到了结果,但提示存在问题。在我在我选择的任何提示中选择一些值之前,页面正在刷新。如何防止页面刷新?您能否提出解决方案。提前致谢。
问问题
4686 次
2 回答
2
我建议在 Cognos 范围内工作,而不是尝试自定义编写 JS。您将不可避免地遇到他们的一些内置函数,这将导致出现跨版本和潜在跨浏览器问题的奇怪行为。
相反,为什么不是 2 个提示页面:
- 第 1 页:复选框提示使用设置为复选框的值提示。将这些中的每一个与一个变量联系起来。
- 第 2 页:基于变量有条件地呈现提示。
于 2014-03-03T12:51:38.133 回答
2
如果任何 Cognos 提示是级联提示(Properties->'Cascade Source' 不是空白),它们将在选择父提示后触发提示页面刷新。
此外,任何将 Auto-Submit 属性设置为“是”的提示都会在被选中后触发页面提交(假设已填写所有必需的提示)或刷新您的提示页面(如果尚未填写任何必需的提示)。
Toddnappi 的解决方案是我成功用于此类情况的一种解决方案,如果可能,我强烈建议使用它。Cognos javascript API 在 10.1 中受到限制,但可以预测。您没有理由不能按照您尝试的方式使解决方案发挥作用。
请记住,javascript API 在 10.2 中得到了极大的改进,如果您非常需要自定义构建的 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>
首次加载时的页面:
点击后(不刷新):
于 2014-03-03T18:51:19.113 回答