我想在我的JSP portlet中顯示jFreeChart生成的SVG圖片。圖像的大小應該與portlet一樣寬,高度是寬度的固定因子。如何找到portlet的大小
我解決了這個問題,但我不知道是否有更好的方法來完成相同的任務。
我做什麼:
定義一個invisibel元素渲染
<div id="<%= myPortletNamespace %>test" style="display: none;"></div>
定義渲染時觸發了觸發器後找到該portlet是完整的,我的Portlet的寬度設置。在這裏我找到了前面提到的元素,檢查它的大小,調整包含圖形的表的大小並調用資源來獲取圖形。
Liferay.on('allPortletsReady', function() { AUI().use('node', function(A) { var test = A.one('#<%= myPortletNamespace %>test'); var parent = test.ancestor('.portlet-body');; if (parent != null){ var table_width = parent.get('offsetWidth');; <%= myResize %>(table_width); <%= myGetTableCharts %>(); } }); } );
的一個問題是觸發似乎火三次這可能會成爲一個性能問題。
有沒有更好的方法來做到這一點?
爲什麼不給100%的寬度?它將被綁定到portlet邊界,並且100%來自或相對於portlet,所以如果portlet被放置在頁面上,根據您選擇的佈局,圖像將佔用100%的寬度,因此圖像將顯示爲portlet的大小 –
我想用寬度來計算圖像的高度。但是在整個頁面的渲染過程中寬度會發生變化。因此,如果我的portlet位於左側,它將在渲染時具有完整空間的100%。但在右列的portlet也呈現後,它會變小, –