Показать / скрыть таблицу JSP JSTL с Hashmap

Я застрял! Я попытаюсь объяснить мою проблему: я должен зациклить хэш-карту, выбрать один из ключей и «взорвать» детали. Хэш-карта - это HashMap<String, List<Object>> . Я думал о onClick с JS-скриптом, но я не уверен, как получить индекс во втором цикле, чтобы скрыть / визуализировать детали. Я посмотрел в Интернете и на stackoverflow тоже, но я не могу найти хороший пример для меня. Это код JS:

<script>
     function mostraNascondiCiclo(indice)
    {
        var divNascosto = document.getElementById('presenzaRaggruppata'+indice);

        if (divNascosto.style.display === 'none') {
            divNascosto.style.display = 'block'
        } else {
            divNascosto.style.display = 'none'
        }
        return false;
    }
</script>

........

Блок JSP:

<table cellpadding="2" cellspacing="1" border = "0" class="sfondotabella" width="60%">
              <tr>
                  <td class="intestazionelista" width="1%" align="center">&nbsp;</td>
                  <td class="intestazionelista" align="center">Causale</td>
                  <td class="intestazionelista" align="center" width="4%">Totale giorni</td>
                  <td class="intestazionelista" align="center" width="4%">Totale ore</td>
                  <td class="intestazionelista" align="center" width="4%">Totale minuti</td>
              </tr>
              <c:forEach var="presenza" items="${requestScope.mappaPresenzeProgrammate}" varStatus="loop">
                  <tr>
                      <td class="intestazione" width="1%">
                          <img src="images/add.png" alt="Espandi dettaglio presenza causale" title="Espandi dettaglio presenza causale ${presenza.key}" onclick="mostraNascondiCiclo(${loop.index})" border=Ɔ' height="16" width="16">
                      </td>
                      <td class="intestazione">
                          <c:out value="${presenza.key}"/>
                      </td> 
                      <td class="intestazione" width="4%">
                          <c:out value="${presenza.value[0].giorniTotali}"/>
                      </td> 
                      <td class="intestazione" width="4%">
                          <c:out value="${presenza.value[0].oreTotali}"/>
                      </td> 
                      <td class="intestazione" width="4%">
                          <c:out value="${presenza.value[0].minutiTotali}"/>
                      </td> 
                      <input type="hidden" id="idCiclo" value="getCategoryIndex(${loop.index})" />
                  </tr>
                  <c:forEach var="dettaglio" items="${presenza.value}">
                      <div> <!-- COMMENT FOR STACKOVERFLOW: i think must put index here somehow -->
                              <tr>
                                  <td class="intestazionelista" width="1%" align="center">&nbsp;</td>
                                  <td class="intestazionelista" align="center">Richiesta da</td>
                                  <td class="intestazionelista" align="center">Data<br/>pres.</td>
                                  <td class="intestazionelista" align="center">Causale</td>
                                  <td class="intestazionelista" align="center">Ora<br/>inizio</td>
                                  <td class="intestazionelista" align="center">Ora<br/>fine</td>
                                  <td class="intestazionelista" align="center">Qta<br/>rich.</td>
                                  <td class="intestazionelista" align="center">Note<br/>rich.</td>
                                  <td class="intestazionelista" align="center">Inviata a</td>
                                  <td class="intestazionelista" align="center" style="border-left: 2px solid #185163">Stato</td>
                                  <td class="intestazionelista" align="center">Data Autor./<br/>Rifiuto</td>
                                  <td class="intestazionelista" align="center">Note<br/>Autor.</td>
                                  <td class="intestazionelista" align="center" style="border-left: 2px solid #185163">Elab.</td>
                                  <td class="intestazionelista" align="center">Qta<br/>eff.</td>
                              </tr>
                              <tr>
                                  <td class="intestazione" width="1%">
                                      <input type="radio"  name="idPresenza" id="idPresenza_${idx}" value="${presenza.idPresenza}"/>
                                  </td>
                                  <td class="intestazione" align="left" style="white-space: nowrap">
                                      ${dettaglio.soggettoRichiedente.cognome}&nbsp;${dettaglio.soggettoRichiedente.nome}
                                  </td>
                                  <td class="intestazione" align="center">
                                      ${dettaglio.dataPresenza}
                                  </td>
                                  <td class="intestazione" align="right" title="${dettaglio.causale.descrizione}">
                                      <a href="#" onclick="alert('${dettaglio.causale.descrizione}')">${dettaglio.causale.codice}</a>
                                  </td>
                                  <td class="intestazione" align="center">
                                      ${dettaglio.oraInizio}
                                  </td>

                                  ....... blabla
                      </div> 
                      </c:forEach>

Я бы, щелкнув сценарием onClick, на странице отображает только значения выбранного набора ключей и продолжает с другими. (нет одностороннего подхода тогда). Надеюсь, я объясню свою проблему.

Спасибо всем, кто мне поможет !!!

Всего 1 ответ


Решено!

Во второй таблице:

<table style="display: none;" id="entry_${loopKey.index}" cellpadding="2" cellspacing="1" border = "0" class="sfondotabella" width="80%">

JS:

function mostraNascondiCiclo(indice)
    {
        var divNascosto = document.getElementById(indice);

        if (divNascosto.style.display === 'none') {
            divNascosto.style.display = 'block'
        } else {
            divNascosto.style.display = 'none'
        }
    }

Есть идеи?

10000