Bir Primefaces (5.0) Dinamik satırların yanı sıra dinamik satırlarla veritabam var. Özetle, ilk satırın hücreleri bir dizi inputText veya inputTextarea's olurken, ilk satırın altındaki hücreler outputText olsun, sorunumu nasıl ayarlayabilirim?inputText'i sadece bir (Primefaces) dataTable'ın ilk satırına getirme, dinamik sütunlar ve satırlar ile
<p:dataTable var="rowMap" value="#{reviewController.rowMapList}" scrollable="true" scrollWidth="900px" >
<p:columns value="#{reviewController.columnNameList}" var="columnName" headerText="#{columnName}">
<f:facet name="header" >#{columnName}</f:facet>
<f:facet name="header"><p:inputTextarea value="#{rowMap[columnName]}" /></f:facet>
<h:outputText value="#{rowMap[columnName]}" />
</p:columns>
</p:dataTable>
yüzden muhtemelen inputTexts ile satır için yönleriyle kullanarak bir sorun var, düşünüyorum, çünkü şu şekildedir:
, (Creating and populating a DataTable dynamically in JSF2.0 için BalusC tepki sonrasında) xhtml ayrıntılı olduğu için faset dataTable veri yinelemesinde yer almıyor gibi görünüyor. Peki, ilk satırı bir "normal" satır olarak (problemin bir parçasıysa, bir faset yerine) nasıl yerleştiririm - ama yine de tüm satırlara inputTextareas uygulamadan inputTextarea'ları bu ilk satıra uygular mısınız?
Çalıştırmak amacıyla, aşağıdaki gibi reviewController'da bir @PostConstruct ile statik olarak ayarlamıştım.
@Named
@ViewScoped
public class ReviewController implements Serializable {
private List<String> columnNameList;
private ArrayList<Map<String, Object>> rowMapList;
private Map<String, Object> rowMap;
@PostConstruct
public void init() {
columnNameList = new ArrayList<>();
rowMapList = new ArrayList<>();
columnNameList.add("Source Report");
columnNameList.add("Overview");
columnNameList.add("Question 1");
columnNameList.add("Question 2");
columnNameList.add("Question 3");
Map<String, Object> m = new HashMap<>();
m.put(columnNameList.get(0), "Assessor1");
m.put(columnNameList.get(1), "Assessor1 overview text");
m.put(columnNameList.get(2), "Assessor1 comment on Q1");
m.put(columnNameList.get(3), "Assessor1 comment on Q2");
m.put(columnNameList.get(4), "Assessor1 comment on Q3");
rowMapList.add(m);
m = new HashMap<>();
m.put(columnNameList.get(0), "Assessor2");
m.put(columnNameList.get(1), "Assessor2 overview text");
m.put(columnNameList.get(2), "Assessor2 comment on Q1");
m.put(columnNameList.get(3), "Assessor2 comment on Q2");
m.put(columnNameList.get(4), "Assessor2 comment on Q3");
rowMapList.add(m);
//etc
}
Görme böyle çıkıyor:
İstediğim kullanıcı her ilk sıra hücrede açıklama eklenip böylece ilk satırı InputTextarea en sırası olan sahip olmaktır altındaki satırların içeriğine yanıt. Ben bunu görsel olarak başardım - ama yukarıda belirttiğim gibi, inputTextareas'ın (çünkü bunlar yönettikleri için) satır boşluğuna ve columnName yinelemelerine bağlanmadığı işe yaramıyor
Primefaces düzenlenebilir bir datatable (http://www.primefaces.org/showcase/ui/data/datatable/edit.xhtml) - hangi gerekli çizgiler boyunca biraz. Ancak, tüm satırları yalnızca ilk değil, düzenlenebilir hale getirir. Bu durumda, hem sütunların hem de satırların dinamik olarak uygulanacağı daha karmaşıktır.
Herhangi bir yorum veya yardım için teşekkür ederiz. Teşekkürler.
Neden m.put kullanmayın (columnNameList.get (0), "giriş metin değeri"); ve == 0 başka çıktı metni görüntülediğinde rendered sütunu kullan? – Unknown
Mantık sesinizdir. Sorum şu: - xhtml dosyasının ifade dili ve xhtml'sine "row == 0" olduğunda "nasıl" yazıyorsunuz? Yukarıdaki xhtml'i, ilk satırın hücrelerini yakalaması ve gerektiği gibi değiştirmesi için nasıl değiştiririm? – anvw
Kullanıcınız rowIndexVar = "row" veri tablosunun () ve render render = "# {row == 0}" sütununda. –
Unknown