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