2014-03-06 63 views
0

我想在<div>標籤中動態地封裝Primefaces組件。這可能嗎?如何動態地在一個div中包裝Primefaces組件?

使用如

<p:inputText /> 

將呈現實施例:

<div> 
<input id="j_idt18" ...> 
</div> 

我嘗試創建延伸PF的inputText的自定義組件,在渲染器我手動封閉的inputText標記,如:

@Override 
protected void encodeMarkup(FacesContext context, 
     org.primefaces.component.inputtext.InputText inputText) 
     throws IOException { 

    ResponseWriter writer = context.getResponseWriter(); 
    String clientId = div.getClientId(context); 
    writer.startElement("div", div); 

    super.encodeMarkup(context, inputText); 
    writer.endElement("div"); 

    } 

它工作正常,但是當我在InputText co上做ajax更新時mponent,div被重新渲染並重新創建。如何防止div在標記中被重新渲染?我不能使用複合組件只有自定義組件。

感謝

回答

0

環繞你輸入<h:panelGroup layout="block">

<h:panelGroup layout="block"> 
    <p:inputText /> 
</h:panelGroup> 
0

您可以創建一個包裝複合材料部件,說<my:inputText>,通過組件的參數列表和組件內包裹<p:pinputText>暴露的<p:inputText>屬性在<div>內。然後使用自定義組件<my:inputText>而不是<p:inputText>

相關問題