Click here to Skip to main content
15,886,137 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I've to display a table only on click of the + (Expand) and + should get changed to - and I should collapse the table once - is clicked. I've the below code in the jsp page:

<pre lang="HTML"><c:forEach var="type" items="${clientFilterList}" varStatus="status">

<tr  class="${status.index % 2 == 0 ? 'even' : 'odd'}">
    <td width = "5" valign="middle" align = "left">
    <img id=MYFEE<c:out value = "${status.index}"/> class="SectionImage" name = "IMGMYFEE<c:out value = "${status.index}"/>"
             align="right" src="<%=request.getContextPath()%>/images/explorerOpen.gif"  
             onclick="collapseSection('MYFEE<c:out value = "${status.index}"/>', 'MYFEE',event);"/></td>

    <td>${type.key}</td>
    <td>${type.value}</td>

   <c:set var="type" value=${type}></c:set>
   <c:set var = "ifeeCount" value = "${status.index}" scope = "request"/>
   <c:set var = "typeCollapse" value = "MYFEE" scope = "request"/>
   <c:set var = "editableVal" value = "editable${ifeeCount}" scope = "request"/> </tr>
  </c:forEach>


And my javascript method is as below:

JavaScript
function collapseSection(collapseArea, areaType,event){
var collapseImage = '<%=request.getContextPath()%>/images/explorerClose.gif';
var expandImage = '<%=request.getContextPath()%>/images/explorerOpen.gif';
var noOfRows = 0;

if (areaType == 'MYFEE')
{
    noOfRows = document.getElementById('noOfclients').value;
}

sectionCollapse(collapseImage, expandImage, collapseArea, noOfRows, areaType,event);
     }

function sectionCollapse(collapseImg, expandImg, collapseArea, noOfRows,   areaType,event)
   {
    elementToColapse = document.getElementById(collapseArea);
    var event = event || window.event;

    var imageElem = event.target || event.srcElement;
    var elem = event.target || event.srcElement;


    while (elem.tagName != 'TABLE' ){ 
        elem = elem.parentElement;
    } 

    elementToColapse.style.display = 'none';
    //Now see if we need to expand of callapse

    if (elementToColapse.style.display=='none') {
        for (i = 0; i <= noOfRows; i++)
        {
            otherElement = document.getElementById(areaType + i);
            if (otherElement.style.display != 'none')
            {
                document.getElementById('IMG' + areaType + i).src = expandImg;
                otherElement.style.display= 'none'; 
            }
        }

        imageElem.src = collapseImg;
        elementToColapse.style.display= ''; 
        elem.className = 'sectionTitleOpen';
    } else {
        imageElem.src = expandImg;
        elementToColapse.style.display= 'none'; 
        elem.className = 'sectionTitleClosed';
    }
 }


When I click on '+' It just disappears and the expand doesn't work. Could you tell me what's missing?Thanks in advance!!!
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900