Как отобразить панель или любой другой объект GUI в OpenFaces 3.00 с возможностью выбора данных при выборе строки? - PullRequest
0 голосов
/ 28 февраля 2011

Я использую OpenFaces 3.0.0 с JSF 2.0, Fadelets, Managed Beans и сервером Tomcat. У меня есть таблица данных с открытым лицом, и теперь на основе выбора строки я хочу показать некоторые другие данные (кроме данных, отображаемых в таблице данных) на сворачиваемой панели или любом другом подходящем макете открытых поверхностей. У меня есть тег с именем singleRowSelection в таблице openfaces. Не могли бы вы дать мне знать, как настроить открытые грани с данными, чтобы при выборе строки я мог показывать данные на панели ниже таблицы данных? Мне нужно показать / скрыть данные на основе выбора строки Пожалуйста, помогите

1 Ответ

0 голосов
/ 01 марта 2011

Я бы посмотрел на o: singleRowSelection http://openfaces.org/documentation/tagReference/o/singleRowSelection.html

Вот супер базовый пример:

<!DOCTYPE html>

<h:head>
    <title>Example Row Change DataTable</title>
</h:head>

<h:body>

    <h:form prependId="false" id="sampleForm">
        <o:dataTable id="sampleDataTable" value="#{testOpenFacesBean.testStrings}" var="name">                
            <o:singleRowSelection render="somePanel" action="#{testOpenFacesBean.randomize}"/>

        <o:column>
            <h:outputText value="#{name}" />
        </o:column>

    </o:dataTable>
    </h:form>

    <h:panelGroup layout="block" id="somePanel">
        <h:outputText value="#{testOpenFacesBean.randomName}" />
    </h:panelGroup>
</h:body>

package com.test;

import java.math.BigInteger;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(name = "testOpenFacesBean")
@RequestScoped
public class TestOpenfacesBean {

    /**
     * A collection of Strings for testing Openfaces singleRowSelection
     */
    private List<String> testStrings;

    public List<String> getTestStrings() { return this.testStrings; }
    public void setTestStrings(List<String> testStrings) { this.testStrings = testStrings; }

    /**
     * A random name so you can see the data updating
     */
    private String randomString;

    public String getRandomName() { return this.randomString; }
    public void setRandomName(String randomName) { this.randomString = randomName; }

    /**
     * Constructor
     */
    public TestOpenfacesBean() {
    this.testStrings = new ArrayList<String>();
    this.testStrings.add("Beth");
    this.testStrings.add("Jane");
    this.testStrings.add("Doug");
    }

    public void randomize() {
    this.randomString = new BigInteger(62, new SecureRandom()).toString();
    }



}
...