2014-06-23 76 views
0

對話框我使用primefaces表現出確定年代:如何顯示在P上的圖像:從確定年代

我在確定年代的列,它是一個形象,我想要的是,當我在CLIC圖像,ap:對話框以大尺寸顯示圖像。

我做到了,但p:對話框顯示錯誤的圖像,它顯示了datable中最後一行的圖像。

<p:column headerText="imagePath"> 
    <h:graphicImage library="images" name="#{book.imagePath}.png" 
        width="75px" onclick="PF('dlg').show();"/> 
    <p:dialog widgetVar="dlg" resizable="f" height="600px"width="500px"onShow="js"> 
    <h:graphicImage library="images" name="#{book.imagePath}.png"width="400px"/> 
    </p:dialog> 
</p:column> 

謝謝

我已經解決了與commandlink組件的問題

<p:column headerText="imagePath"> 
    <p:commandLink update=":zaki:foo:imgDlg1" oncomplete="dlg1.show()" 
       action="#{jsfClient.showImg(book)}"> 
    <h:graphicImage value="/resources/images/#{book.imagePath}.png" width="75px"/> 
    </p:commandLink> 
</p:column> 

我已經把圖像轉化爲commandlink和它的作品完美,注意,我已經把p:從數據表中退出對話框。

+0

你是否複製粘貼你的代碼?因爲你在'p:dialog'的'h:graphicImage'中失去了一個'{'。 – nosnhoj

+0

這不是問題,你有我的問題的想法? – user3521250

+0

在我看來,在頁面中你有幾個對話框widgetVar =「dlg」,所以它可能只顯示()最後一個。相反,我認爲你應該在表外有一個單獨的對話框,它從bean上的新屬性讀取圖像路徑 - 記住組件上的「rendered = ...」屬性。當你點擊小圖片時,你必須在bean中設置這個屬性,通過ajax更新對話框然後顯示它。 –

回答

1

您應該查看dataTable中的對話框,並在打開對話框之前記錄用戶選擇了哪本書。

看看這個代碼:

<p:dataTable value="#{imgBean.books}" var="book"> 
    <p:column headerText="imagePath"> 
     <h:commandButton image="/images/#{book.imagePath}.png" style="width: 75px" action="#{imgBean.showImg(book)}"/> 
    </p:column> 
</p:dataTable> 

<p:dialog widgetVar="dlg" id="imgDlg" resizable="f" height="600px" width="500px"> 
    <h:graphicImage value="../images/#{imgBean.selectedBook.imagePath}.png" width="400px"/> 
</p:dialog> 

命令按鈕的作用是這樣的:

private Book SelectedBook; 

public void showImg(Book book){ 
    this.SelectedBook=book; 
    RequestContext.getCurrentInstance().update("imgForm:imgDlg"); 
    RequestContext.getCurrentInstance().execute("PF('dlg').show()"); 
} 

public Book getSelectedBook() { 
    return SelectedBook; 
} 

這樣,你不僅可以顯示圖像,但也的其他信息書。

順便說一下,您還可以更新/顯示h:commandButton中的對話框,而不是從支持Bean。

+0

你好,非常感謝你,你的反應工作只是一半,我可以調用豆的方法,但圖像沒有出現在page.for我改變了組件的類型,但它是相同的推理謝謝 – user3521250

+0

圖像沒有顯示在dataTable或對話框中? – nosnhoj

+0

對話框本身沒有出現。 – user3521250

1

這是常見的widgetvar衝突。想想在數據表中有多少個p:對話框,每個對象的widgetvar是什麼?檢查您的渲染頁面以獲得更好的主意。

要在烘焙豆解決此問題,可以選用一些圖片ID並將它傳遞給自定義JavaScript或創建屬性(如「selectedBookImage」),並從<p:dialog>

參考它。使用這種技術,您可以輕鬆地將p:dialog對話框移到datatable之外。

相關問題