展开/折叠显示一行,而隐藏其他行
expand/collapse have one row show while the others are hidden
这在一个cognos列表中。所以我知道很多JS,但显然不足以理解这一点。我有一个列表,在这个列表中,我有一种层次结构,它将在中展开几个层。我希望除了第一层之外,所有层都开始隐藏。所以像这个
第一层(显示)第二层(隐藏)第三层(隐藏)
我的JS代码在下面,我一辈子都搞不清楚。如有任何帮助,我们将不胜感激。
function StartHidden() {
var q=document.getElementById("ExpandedTable");
// get the table
tbl = q.parentNode.parentNode.parentNode.parentNode;
var isFirstRow=true;
for ( var i = 0; i < tbl.rows.length; i++) {
var trCurrent = tbl.rows; // the current row
var d = trCurrent.cells[0]; // first cell
var c = d.firstChild;
if (i < 2 || c.tagName.indexOf("IMG") != -1) {
c = c.src; // leave it visible, since it has + icon
for ( var j = 1; j < trCurrent.cells.length; j++) {
trCurrent.cells[j].width="1";
}
}
else {
trCurrent.style.display = "none"; // hide the row
}
}
}
为了在报表中处理Cognos Javascript对象,您必须使用getFormWarpRequest函数,而不是直接处理文档对象
正确的代码片段应该是:
var fW = (typeof getFormWarpRequest == "function" ?getFormWarpRequest() : document.forms["formWarpRequest"]);
// if it’s undefined, check if it is running in a portlet
if ( !fW || fW == undefined) { fW = ( formWarpRequest_THIS_ ?formWarpRequest_THIS_ : formWarpRequest_NS_ );}
然而,这只是解决方案的一部分,因为在Cognos8.4中,数据对象(列表、交叉表)是用动态名称和IDS生成的因此,您应该使用getElementsByTagName方法,而不是getElementById。示例如下:
Ironside-IBM Cognos和JavaScript-第二部分
另一个可以简化工作的技巧是在Cognos中使用jQuery。这里有很好的记录:
Cognos中使用jQuery的动态报告
我在这里写了一个例子:
Cognos中使用jQuery的动态自定义异常
关于使用javascript的其他Cognos文档可以在这里找到:
Cognos-升级JavaScript应用程序
相关文章:
- 隐藏的锚链接下降在下一行一旦显示
- 在每个固定高度段落的最后一行添加省略号,并隐藏溢出 y
- 如何在 JavaScript 中隐藏上一行
- 隐藏列特定值上的一行中的按钮
- 在同一行中为每个复选框显示和隐藏文本字段
- 展开/折叠显示一行,而隐藏其他行
- 当我隐藏页面上的元素时,光标会跳到顶部而不是下一行.我该如何阻止这种情况
- Jquery:隐藏除第一个表之外的所有表的第一行
- 如何使用jQuery隐藏表中具有特定类的最后一行
- 选择GridView的一行时如何显示隐藏列数据
- 隐藏D3绘图上的一行
- 在Angular.js中,点击前一行显示下一行(隐藏的)
- 如何做到这一点隐藏所有行,除了一行在jQuery
- 隐藏没有class和id属性的html表2的第一行
- 检查最后一行,不删除它也隐藏按钮
- 隐藏/显示具有特定类的表行,直到另一行具有不同的类名
- 使用& lt; td>而不是
显示/隐藏一行 - 为什么通过Javascript显示/隐藏HTML元素会把它放在另一行?
- 如何隐藏一行表(或列表项)并在不重新加载页面的情况下更新数据存储
- 在.php中创建Textarea和submit按钮以隐藏数据库表中的每一行