使用Hashmap显示/隐藏表jsp jstl

问题描述 投票:0回答:1

我被卡住了!我将尝试解释我的问题:我必须循环散列图,选择键之一和“爆炸”详细信息。哈希图是HashMap<String, List<Object>>。我想到了带有JS脚本的onClick,但是我不确定如何将索引放入第二个循环以隐藏/可视化细节。我也查看了互联网和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='0' 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脚本进行单击,页面仅显示所选键集的值,然后继续显示其他键集的值。 (然后没有单向方法)。希望我能解释我的问题。

感谢任何能帮助我的人!

javascript html jsp jstl
1个回答
0
投票

已解决!

在第二张表中:

<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';
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.