Solved

How can I show/hide rows in a HTML table, but 1st row always show

Posted on 2009-05-05
8
277 Views
Last Modified: 2012-06-27
Hi all,

I am generated some HTML / Javascript through the use of some XSLT, and what I aim to do is generate a table with many rows where we always have the 1st row showing (which has a +/- image there for users to click so that they can expand/collapse the rest of the rows in that table). I am having trouble with the Javascript on assigning the relevant class to the rows so that they get hidden or shown.

So far my XSL is generating the HTML table that is shown.

I know I am violating HTML here by having many tags with the same ID, but I am just looking for ways to get this to work.

Is anyone able to help me out a bit here and also suggest what I place in my 'ShowHide()' javascript method?

Thanks in advance
<table class="InfoBlock" cellspacing="0" cellpadding="0">

      <col class="report_column_headings">

      <col class="report_column_headings">

      <tbody>

        <th>Date</th>

        <th>Capital</th>

        <tr class="search_results_row_colour">

          <td class="collection_list"><a onClick="ShowHide('ID0EKFAC')"><img src="images/panel_Plus.gif" alt="expand/collapse section" class="expandable" onclick="changepic()" border="0"></a>07-03-2005</td>

          <td class="collection_list">3,000,000</td>

        </tr>

        <tr class="collapsed" id="ID0EOFAC">

          <td class="collection_list">27-07-2002</td>

          <td class="collection_list">15,000,000</td>

        </tr>

        <tr class="collapsed" id="ID0ESFAC">

          <td class="collection_list">23-10-2000</td>

          <td class="collection_list">100,000</td>

        </tr>

      </tbody>

    </table>

Open in new window

0
Comment
Question by:TrystHughes
8 Comments
 
LVL 10

Accepted Solution

by:
bugada earned 50 total points
ID: 24303901
If your show/hide is supposed to hide/show a single row you can use some sort of javascript like the following:
function ShowHide(id) {

   var elem = document.getElementById(id);

   if (elem) {

      elem.style.display = elem.style.display == "none" ? "block" : "none";

   }

   return false;

}

Open in new window

0
 
LVL 41

Assisted Solution

by:HonorGod
HonorGod earned 50 total points
ID: 24303951
You could put the row to not be displayed in the <thead> section, then the code can hide all of the rows in the <tbody>
0
 

Expert Comment

by:metta0_3
ID: 24303970
Well CSS for hiding would be Create an inline style to have initially hidden control using below CSS

Style = "display:none"

There is also a javascript show method.

function ShowItem() {
    document.getElementById('controlID').show();
}

function hideItem() {
document.getElementById('controlID').style.visibility = 'hidden';
}
0
 
LVL 41

Expert Comment

by:HonorGod
ID: 24303977
Put the ShowHide() function in the <head> section of the document between beginning and ending script tags, like this:
<script type='text/javascript'>

  function ShowHide() {

    ...

  }

</script>

Open in new window

0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 12

Assisted Solution

by:alien109
alien109 earned 25 total points
ID: 24303984
if you mark up your table as follows:

<table>
<thead>
    <tr>
        <td>this is the first row</td>
    </tr>
</thead>
<tbody id="bob">
    <tr>
        <td>this is all the other stuff that hides/shows</td>
    </tr>
</tbody>
</table>

You can target just the body (with the appropriate id...) of the table to hide/show and leave the head as visible.
0
 
LVL 12

Expert Comment

by:alien109
ID: 24303995
oops, HonorGod beat me to the punch.
0
 

Author Comment

by:TrystHughes
ID: 24306140
Hi all, and thanks for teh replies :)

It looks like i am going down the <thead><tbody> route, but I am having trouble with my XSL output side of this at the moment, but once I crack this I will come back onto Javascript side of it here.

...brb...
0
 
LVL 41

Expert Comment

by:HonorGod
ID: 24309799
Thanks for the assist, and the points.

I'm sorry that you felt the answer(s) only warranted a B

Good luck & have a great day
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Having worked on larger scale sites, we found out that you are bound to look at more scalable solutions to integrating widgets, code snippets or complete applications and mesh them into functional sites, in any given composition. To share some of…
This is a PowerShell web interface I use to manage some task as a network administrator. Clicking an action button on the left frame will display a form in the middle frame to input some data in textboxes, process this data in PowerShell and display…
In this tutorial viewers will learn how to code links for mobile sites that, once clicked, send a call or text to a specified number. For a telephone link (once clicked, calls a number), begin with a normal "<a href=" link tag. For the href, specify…
In this tutorial viewers will learn how to embed Flash content in a webpage using HTML5. Ensure your DOCTYPE declaration is set to HTML5: "<!DOCTYPE html>": Use the <object> tag to embed Flash content.: To specify that the object is Flash content, d…

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now