0

所以我有一个页面,要求用户输入人们的信息,我将使用这些信息在数据库中进行搜索,以获得更强大的人口统计数据。我遇到的问题是,当我在搜索中添加要查找的人时(通过 a )我正在向列添加新行。

用户说他们不想要阵列的垂直渲染。他们想要水平渲染,这意味着每个父对象都有一个新列。只有父级,所以如果 addRow 对他们来说工作得很好,那么其余的,但是他们想要并排比较。我不知道如何通过 jsf/jsp 做到这一点。这是我目前拥有的:

<div style="overflow: auto; width: 1250px; height: 200px;">
<h:dataTable var="root" value="#{bcCreateMessageHandler.bcCreateInstance.inputValuesArray['/newParent/Persons[]/'].values}" styleClass="MaxWidth" headerClass="ArrayHeader">
    <h:column>
        <f:facet name="header">
            <h:outputText styleClass="ArrayLabel" value="Persons"/>
        </f:facet>
    </h:column>
    <h:column>
        <f:facet name="header">
            <h:panelGrid columns="2" columnClasses="MaxWidth"> 
                <h:outputText value="" /> 
                <h:commandLink value="#{bundle['MSG_ARRAY_ADD_ENTRY']}" styleClass="NavigationLink" binding="#{commandLink.instance}"
disabled="#{!bcCreateMessageHandler.bcCreateInstance.inputValuesArray['/newParent/Persons[]/'].addPossible}"
action="#{bcCreateMessageHandler.bcCreateInstance.inputValuesArray['/newParent/Persons[]/'].addRow}"/>
            </h:panelGrid>
        </f:facet> 
        <h:panelGrid columns="2" styleClass="ArrayEntryHeader" columnClasses="MaxWidth">
            <h:outputText styleClass="ArrayLabel" value="Create Case Person" />
            <h:commandLink value="#{bundle['MSG_ARRAY_REMOVE_ENTRY']}"  styleClass="NavigationLink"
binding="#{commandLink.instance}"
disabled="#{!bcCreateMessageHandler.bcCreateInstance.inputValuesArray['/newParent/Persons[]/'].removePossible}"
action="#{root['~REMOVE~'].removeRow}"/>
        </h:panelGrid> 
        <h:outputText value=""/>
        <h:panelGrid columns="2">
            <h:outputText styleClass="ViewFieldLabel" value="PersonFirstName"/>
            <h:inputText id="PersonFirstName_ID" styleClass="ViewEntryField" value="#{root['PersonFirstName']}" required="false"/>
            <h:outputText styleClass="ViewFieldLabel" value="Person's Last Name"/>
            <h:inputText id="PersonLastName_ID" styleClass="ViewEntryField" value="#{root['PersonLastName']}" required="false"/>
            <h:outputText styleClass="ViewFieldLabel" value="Person's Middle Name"/>
            <h:inputText id="PersonMiddleName_ID" styleClass="ViewEntryField" value="#{root['PersonMiddleName']}" required="false"/>
            <h:outputText styleClass="ViewFieldLabel" value="Date of Birth"/>
            <h:panelGroup>
                <h:inputText id="DateOfBirth_ID" styleClass="ViewEntryField" value="#{root['DateOfBirth']}" required="false">
                    <hx:convertDateTime type="date"/>
                    <hx:inputHelperDatePicker/>
                </h:inputText>
                <h:message styleClass="errorDetailsValidation" for="DateOfBirth_ID"/>
            </h:panelGroup>
            <h:outputText styleClass="ViewFieldLabel" value="SUPER ID"/>
            <h:panelGroup>
                <h:inputText id="SUPERID_ID" styleClass="ViewEntryField" value="#{root['SUPERID']}" required="false">
                    <f:converter converterId="IntegerConverter"/>
                </h:inputText>
                <h:message styleClass="errorDetailsValidation" for="SUPERID_ID"/>
            </h:panelGroup>
        </h:panelGrid>  
        <h:outputText value=""/>
        <h:dataTable var="nested_1_1_1" value="#{root['OtherIDs[]/'].values}" styleClass="MaxWidth" headerClass="ArrayHeader">     
            <h:column>
                <f:facet name="header">
                    <h:outputText styleClass="ArrayLabel" value="OtherIDs"/>
                </f:facet>
            </h:column>
            <h:column>
                <f:facet name="header">
                    <h:panelGrid columns="2" columnClasses="MaxWidth"> 
                        <h:outputText value="" /> 
                        <h:commandLink value="#{bundle['MSG_ARRAY_ADD_ENTRY']}" styleClass="NavigationLink"
binding="#{commandLink.instance}"
disabled="#{!root['OtherIDs[]/'].addPossible}"
action="#{root['OtherIDs[]/'].addRow}"/>
                    </h:panelGrid>
                </f:facet> 
                <h:panelGrid columns="2" styleClass="ArrayEntryHeader" columnClasses="MaxWidth">
                    <h:outputText styleClass="ArrayLabel" value="Other ID" />
                    <h:commandLink value="#{bundle['MSG_ARRAY_REMOVE_ENTRY']}"  styleClass="NavigationLink"
binding="#{commandLink.instance}"
disabled="#{!root['OtherIDs[]/'].removePossible}"
action="#{nested_1_1_1['~REMOVE~'].removeRow}"/>
                </h:panelGrid>
                <h:outputText value=""/>
                <h:panelGrid columns="2">
                    <h:outputText styleClass="ViewFieldLabel" value="ID"/>
                    <h:inputText id="ID_ID" styleClass="ViewEntryField" value="#{nested_1_1_1['ID']}" required="false"/>
                    <h:outputText styleClass="ViewFieldLabel" value="Source System of Other ID"/>
                    <h:selectOneMenu styleClass="ViewEntryField" value="#{nested_1_1_1['IdType']}">
                        <f:selectItem itemValue="TYPE1" itemLabel="TYPE1"/>
                        <f:selectItem itemValue="TYPE2" itemLabel="TYPE2"/>
                    </h:selectOneMenu>
                </h:panelGrid>
            </h:column>
        </h:dataTable>
        <h:outputText value=""/>
        <h:panelGrid columns="2">
            <h:outputText styleClass="ViewFieldLabel" value="Gender"/>
            <h:selectOneMenu styleClass="ViewEntryField" value="#{root['Gender']}">
                <f:selectItem itemValue="M" itemLabel="M"/>
                <f:selectItem itemValue="F" itemLabel="F"/>
                <f:selectItem itemValue="U" itemLabel="U"/>
            </h:selectOneMenu>
        </h:panelGrid>  
        <h:outputText value=""/>
        <h:dataTable var="nested_1_2_1" value="#{root['AliasNames[]/'].values}" styleClass="MaxWidth" headerClass="ArrayHeader">     
            <h:column>
                <f:facet name="header">
                    <h:outputText styleClass="ArrayLabel" value="AliasNames"/>
                </f:facet>
            </h:column>
            <h:column>
                <f:facet name="header">
                    <h:panelGrid columns="2" columnClasses="MaxWidth"> 
                        <h:outputText value="" /> 
                        <h:commandLink value="#{bundle['MSG_ARRAY_ADD_ENTRY']}" styleClass="NavigationLink"
binding="#{commandLink.instance}"
disabled="#{!root['AliasNames[]/'].addPossible}"
action="#{root['AliasNames[]/'].addRow}"/>
                    </h:panelGrid>
                </f:facet> 
                <h:panelGrid columns="2" styleClass="ArrayEntryHeader" columnClasses="MaxWidth">
                    <h:outputText styleClass="ArrayLabel" value="aliasNames" />
                    <h:commandLink value="#{bundle['MSG_ARRAY_REMOVE_ENTRY']}"  styleClass="NavigationLink"
binding="#{commandLink.instance}"
disabled="#{!root['AliasNames[]/'].removePossible}"
action="#{nested_1_2_1['~REMOVE~'].removeRow}"/>
                </h:panelGrid>
                <h:outputText value=""/>
                <h:panelGrid columns="2">
                    <h:outputText styleClass="ViewFieldLabel" value="Last Name"/>
                    <h:inputText id="LastName_ID" styleClass="ViewEntryField" value="#{nested_1_2_1['LastName']}" required="false"/>
                    <h:outputText styleClass="ViewFieldLabel" value="First Name"/>
                    <h:inputText id="FirstName_ID" styleClass="ViewEntryField" value="#{nested_1_2_1['FirstName']}" required="false"/>
                    <h:outputText styleClass="ViewFieldLabel" value="Middle Name"/>
                    <h:inputText id="Middle_ID" styleClass="ViewEntryField" value="#{nested_1_2_1['Middle']}" required="false"/>
                </h:panelGrid>
            </h:column>
        </h:dataTable>
        <h:outputText value=""/>
        <h:panelGrid columns="2">
            <h:outputText styleClass="ViewFieldLabel" value="Date Person Expired"/>
            <h:panelGroup>
                <h:inputText id="DateExpired_ID" styleClass="ViewEntryField" value="#{root['DateExpired']}" required="false">
                    <hx:convertDateTime type="date"/>
                    <hx:inputHelperDatePicker/>
                </h:inputText>
                <h:message styleClass="errorDetailsValidation" for="DateExpired_ID"/>
            </h:panelGroup>
        </h:panelGrid>
    </h:column>
</h:dataTable>

4

1 回答 1

0

因此,如果您想动态添加列,您dataTable可以通过两种方式完成,将您的 dataTable 绑定到您的支持 bean使用第三方组件库(如RichFaces),它使您能够拥有强大的数据表,您可以在其中定义columns动态标签创建它们。选择其中之一,集成 Richfaces 意味着将相应的库添加到您的类路径并配置它们。

于 2013-01-28T21:29:23.033 回答