2009-12-16 26 views
6

Sorunum, RichFaces takvimini, kullanıcı tarafından seçilmesine izin verilen tarihleri ​​kısıtlıyor.Richfaces Calendar Minimum ve Maksimum Tarihler

Yalnızca bu ayın tarihlerine ve bir sonraki ayın kullanıcı tarafından seçilmesine izin vermek istediğimi varsayalım.

PreloadDateRangeStart ve preloadDateRangeEnd özniteliklerini kullandım, ancak hiçbir şey yapmadılar.

PreloadDateRangeStart ve preloadDateRangeEnd öğelerini kullanan ve öğeleri etkinleştiren kendi CalendarDataModel'imi oluşturdum ancak ekrandaki takvim, yalnızca seçili ayın tarihlerine izin veriyor. PreloadDateRangeStart öğesinin bugünün tarihi ve preloadDateRangeEnd'in bugünün tarihi ile 2 ay olduğunu unutmayın.

Burada bir şey eksik eminim. Biri bana yardım edebilir mi lütfen?

cevap

3

Daha fazla bilgi için bakınız richfaces demo formu

function isDayEnabled(day) { 
} 

değeri (isDayEnabled) tanımlamak gereken bir JavaScript işlevi isDayEnabled="isDayEnabled" özelliği, kullanım. Eğer, sunucu tarafında doğrulama eklemek özel bir MTU Validator kullanın veya (richfaces bkz - fasulye doğrulayıcı) Hazırda Validator ek açıklamaları kullanmak istiyorsanız

o kadar burada nasıl

+0

Bu sunucu tarafında yapılabilir mi? Javascript kullanmak istemiyorum. Sunucuda ekstra geçerlilikler uygulamak zorundayım! – DaTroop

+0

, sunucunun doğrulama işlemini el ile gerçekleştirir. Özel JSF Validator'ı kullanma. Ya da Hazırda Bekleme Validator ek açıklamalarını kullanarak (bkz. Richfaces - bakla validator) – Bozho

+0

Bunu zaten yaptınız! Her şey için teşekkürler! – DaTroop

1

anladım o da:

CalendarDataModel'u uygulayan bir sınıf oluşturdum. CalendarDataModel sadece durumda preloadDateRangeStart ve preloadDateRangeEnd aralığında umurunda çünkü bunları belirtmek olsa

Ben preloadDateRangeStart ve preloadDateRangeEnd özelliklerini kullanmıyordu.

Benim CalendarDataModel, bir özellik dosyasında belirttiğim tarih aralığının dışında olan ve öğenin tarihinin devre dışı bırakmak için aralık arasında olmadığını belirlemek için kullandığım tarih öğelerinin aralığı olan takvim öğelerinin devre dışı bırakılmasını sağlar.

Şimdi harika çalışıyor. İşte buradaki çözümümüzü de denedim:

<a4j:outputPanel id="myCal" layout="block"> 
    <rich:calendar cellHeight="30px" cellWidth="30px" 
     dataModel="#{MyCalendarDataModel}" datePattern="dd/MM/yyyy" mode="ajax" 
     style="width:200px" value="#{MyPage.theDate}"/> 
</a4j:outputPanel> 

Çalışıyor ama müşteriye biraz dağınık.

Tekrar teşekkürler adam

+0

Java kodunu CalendarDataModel uygulamasına gönderebilir misiniz? –

+0

Lazlo Kodum yok. İş değiştirdim. Gerçek uygulamaya http://www.java2s.com/Open-Source/Java-Document/JBoss/richfaces-ui-3.1.4.GA/org/richfaces/CalendarDataModelImpl.java.htm bakın ve değişikliklerinizi yapın. Adınız bir UUID sürüm 5 gibi görünüyor. – DaTroop

İlgili konular