Как отобразить таблицу данных с пустыми строками, используя jsf 2.0 - PullRequest
0 голосов
/ 17 мая 2011

Я пытаюсь показать пустую таблицу данных с 10 строками при загрузке страницы, когда я пытаюсь использовать приведенный ниже код, он не показывает никаких строк.

<h:dataTable id="d" value="" bgcolor="#9AC8E6" border="10" cellpadding="5" cellspacing="3" rows="10" width="100%" dir="LTR" frame="hsides" rules="all" >
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Student Number" />
                        </f:facet>
                        <h:inputText value="#{10}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Student Name" />
                        </f:facet>
                        <h:inputText value="" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Standard" />
                        </f:facet>
                        <h:inputText value="" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Marks" />
                        </f:facet>
                        <h:inputText value="" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Percentage" />
                        </f:facet>
                        <h:inputText value="" > </h:inputText>
                    </h:column>
                    <h:column>            
                </h:dataTable>

Нужна помощь для отображения таблицы данныхс пустыми столбцами и строками

ОБНОВЛЕНИЕ

В соответствии с данным решением я пробовал этот способ, но не смог решить проблему

   <h:dataTable id="d" value="#{inquiryBean.blankList}" var="emptyBean" bgcolor="#9AC8E6" border="10" cellpadding="5" cellspacing="3" rows="10" width="100%" dir="LTR" frame="hsides" rules="all" >
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Item Number" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.itemNumber}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Material" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.material}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Description" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.description}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Unit" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.unit}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Quantity" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.quantity}" > </h:inputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText style=""value="Delivery Date" />
                        </f:facet>
                        <h:inputText value="#{emptyBean.deliveryDate}" > </h:inputText>
                    </h:column>
                </h:dataTable>

## Класс бина ##

//getters and setters
List blankList = new ArrayList();

public List getBlankList() {
    InquiryBean bean = new InquiryBean();
    bean.setItemNumber("");
    bean.setMaterial("");
    bean.setDescription("");
    bean.setQuantity("");
    bean.setUnit("");
    bean.setDeliveryDate(null);
    return blankList;
}

Я что-то упустил ????

Ответы [ 2 ]

1 голос
/ 17 мая 2011

Необходимо указать значение для атрибута value (извините, каламбур не предназначен). Это то, как вы указываете строки таблицы данных. Теперь у вас есть способ указать, что в выходной таблице не должно быть (нулевых) строк (если это только работает).

Вот почему я предлагаю объявить некоторый компонент, который будет иметь коллекцию из 10 элементов, в качестве некоторого свойства (если это ваше предпочтение). И иметь выражение EL, указывающее на свойство этого компонента в атрибуте value.

Вы можете взглянуть на некоторые примеры в Интернете (посмотрите на DataTableBean там).

В основном вы должны:

  • определить bean-компонент (в faces-config.xml, если это обычный JSF)
  • определить класс реализации бина с коллекцией из 10 элементов
  • указывает на эту коллекцию, используя выражение EL в атрибуте value компонента h:dataTable.

UPDATE:

После вашего обновления. Теперь у вас есть определенный компонент, который кажется правильным, и класс его реализации. Однако ваш «blankList» - это пустая коллекция (как точно указывает название). Если вы хотите, чтобы в таблице данных было 10 строк, вам нужно вызвать метод add() для вашей коллекции 10 раз (или что-то подобное).

1 голос
/ 17 мая 2011

Если вы не хотите заполнить его позже, вы можете вместо этого использовать простую HTML-таблицу:

<table>
  <tr>
    <td>Student Number</td><td>Student Name</td> ...
  </tr>
  <tr>
    <td></td><td></td> ...
  </tr>
  <!-- 9 rows following -->
</table>

Если вы хотите заполнить ее позже, вы должны использовать var Атрибут dataTable и подготовить список с 10 (пустыми) элементами в компоненте:

<h:dataTable value=#{myBean.studentList} var="item">
  <h:column>
    <f:facet name="header">
       <h:outputText value="Student Number" />
    </f:facet>
     <h:inputText value="#{item.studNum}" />
  </h:column>
  ..
</h:dataTable>
...