我有一種情況,我有一個通常顯示在 jsp 中的報告,現在我有一個列印,其中所述頁面的多個實體需要多次包含,所以這是一種組合報告。為了避免使用相同的鍵向模型添加值可能出現的問題,我們想出了這種方法來包含 jsp。
<c:forEach var="prodTest" items="${listProductionTest}">
<div style="display:block" id="chargeReport${prodTest.report.recId}">
</div>
<script type="text/javascript">
$.get("ChargeReportContent?recId=${prodTest.report.recId}", function( data ) {
$("#chargeReport${prodTest.report.recId}").html(data);
});
</script>
ChargeReportContent 是一個端點,它回傳帶有值的 jsp。它可以正確檢索資料,但是 div 高度完全錯誤,導致兩個報告重疊。似乎自動高度給了自己足夠的高度,只包括報告的第一部分。

顯示塊似乎不起作用。這些報告的大小應該在 1500 像素左右,但是將高度設定為固定值并不是一個真正的選擇,因為大小可以根據報告或更新而改變。
請幫忙!
uj5u.com熱心網友回復:
div中元素的位置是什么?確保它們不是固定的、絕對的或浮動設定。div默認設定為顯示塊,你可以嘗試將它設定為flex
uj5u.com熱心網友回復:
有同事提出,這是因為 html 是通過編程方式填充的,大小不準確。我們從來沒有想出一個干凈的方法來解決這個問題,但我們想出的最好的方法是自己計算所需的高度,然后設定它。例如標題總是92px,recipe總是256px,Reportlines size= 42 (21(materials 1)),notes部分如果沒有notes是23px,如果有notes是42,等等如果在JSP中我們無法輕松檢索許多警報,我們創建了一個不可見的輸入來存盤值并由模型添加,例如
<input id="alarmCounter${report.recId}" style="display: none" value="${alarmCount}"></input>
然后我們檢索 val 以在計算中使用它。在我們找到總數之后,我們只是在獲取包含頁面的 get 中設定它 $.get("ChargeReport?recId=${prodTest.report.recId}", function( data ) {
$("#chargeReport${prodTest.report.recId}").html(data);
let alarmCount = 0;
alarmCount =parseInt($('#alarmCounter${prodTest.report.recId}').val());
var chartsize = 400*($('#chartExists${prodTest.report.recId}').val() == 'true' ? 1 : 0)
var pixelsNeeded= 92 256 205
42 21*(${fn:length(prodTest.report.reportLines)} 1)
21*(alarmCount 2)
19 24*${!empty prodTest.report.comment}
chartsize 51
50;
$('#chargeReport${prodTest.report.recId}').css("height",pixelsNeeded "px");
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/439665.html
