【问题标题】:Datatable 7 items on each row数据表每行 7 个项目
【发布时间】:2014-07-21 06:34:27
【问题描述】:

假设我有一个一个月中所有日子的列表,我想将其打印为日历。我想要每行一周,然后换行

在下面的示例中,我将在每一行中获得一天,如下所示:

在 JSF 中像这样在每一行中获得 7 天的最佳方法是什么?

示例代码:

查看:

 <h:dataTable value="#{myController.dayList}" var="day">
            <h:column>
                <h:outputText value="#{day}"/>
            </h:column>

 </h:dataTable>

后豆:

@ManagedBean(name = "myController")
@SessionScoped
public class MyController {

  private List <int> dayList;

  public MyController()
  {
      dayList = getAllDaysInMonth();
  }

  public List <int> getAllDaysInMonth()
  {
   .....
  }

  public List <int> getDayList()
  {
      return dayList;
  }

  public void setDayList(List <int> dayList)
  {
    this.dayList = dayList;
  }

}

【问题讨论】:

    标签: jsf datatable


    【解决方案1】:

    如果你想在你的项目中使用Primefaces,你可以这样做。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:p="http://primefaces.org/ui">
    <body>
        <p:dataGrid value="#{myController.dayList}" var="day" columns="7">
            <p:panel style="text-align: center; background-color: skyblue; width: 100px; height: 100px;">
                Day ${day}
            </p:panel>
        </p:dataGrid>
    </body>
    </html>
    

    控制器类

    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.annotation.PostConstruct;
    import javax.enterprise.context.SessionScoped;
    import javax.inject.Named;
    
    @Named(value = "myController")
    @SessionScoped
    public class MyController implements Serializable {
    
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
    
        List<Integer> dayList = new ArrayList<>();
    
        public MyController() {
        }
    
        @PostConstruct
        public void init() {
            for(int i = 1; i <= 31; i++) {
                dayList.add(new Integer(i));
            }
        }
    
        public List<Integer> getDayList() {
            return dayList;
        }
    
        public void setDayList(List<Integer> dayList) {
            this.dayList = dayList;
        }
    }
    

    看起来不是很好,但可以满足您的需求。

    帕特里克

    【讨论】:

    • 谢谢!我使用 primefaces,您的解决方案效果很好!再次感谢!
    猜你喜欢
    • 2018-10-13
    • 2016-08-02
    • 2019-08-31
    • 2016-11-25
    • 2023-03-10
    • 2022-01-22
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多