2

インライン モードの Primefaces カレンダーは、バグのある方法で表示されます。

プライムフェイスカレンダー

コード:
xHTML

<p:tab title="Logs">
<p:panelGrid columns="2" cellpadding="2" styleClass="logsGrid">
<p:accordionPanel id="accordionLogs" styleClass="logsAccordion">
<p:tab title="Log1"></p:tab>
<p:tab title="Log2"></p:tab>
</p:accordionPanel>
<p:calendar value="#{dateBean.date}" mode="inline" styleClass="logsCalendar">
<p:ajax event="dateSelect" listener="#{dateBean.handleDateSelect}" update=":growlMain" />
</p:calendar>
</p:panelGrid>
</p:tab>

クラス:

package com.swql.sprint;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import org.primefaces.event.SelectEvent;

@ManagedBean
public class DateBean {

    private Date date;

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public void handleDateSelect(SelectEvent event) {
        Date date = (Date) event.getObject();
        FacesMessage msg = null;
        SimpleDateFormat format = new SimpleDateFormat("d/M/yyyy");
        msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Date Picked", format.format(date));
        FacesContext.getCurrentInstance().addMessage(null, msg);
        }

}

この問題を解決するにはどうすればよいですか?

€同上:

理由はすでにわかっています: p:panelGrid は何らかの形でカレンダーのコンテンツのサイズを変更します。おそらく修正は、カレンダーを他のコンテナに入れることでしょう。試して報告します。

€dit2:

カレンダーをパネルに配置しても問題は解決しません。

4

2 に答える 2

0

ここで、あなたが作成しようとしているデザインがわかりません。このコードを使用しました...

<p:tab title="Logs">

<p:accordionPanel id="accordionLogs" styleClass="logsAccordion">
<p:tab title="Log1"></p:tab>
<p:tab title="Log2"></p:tab>
</p:accordionPanel>
<p:calendar   mode="inline" styleClass="logsCalendar">
<p:ajax event="dateSelect"    />
</p:calendar>

</p:tab>

それは私にとってはうまくいきます

于 2013-02-22T12:08:04.803 に答える
0

当面の回避策は、html gridPanels を使用することです。

<h:panelGrid columns="2" cellpadding="2" styleClass="logsGrid">
<p:calendar value="#{dateBean.date}" mode="inline" styleClass="logsCalendar">
<p:ajax event="dateSelect" listener="#{dateBean.handleDateSelect}" update=":growlMain" />
</p:calendar>
</h:panelGrid>
于 2013-02-25T08:59:54.827 に答える