2011-05-18 78 views
2

我有一個要求,防止用戶選擇大於當前日期的日期。我試圖通過設置setEndDate(new Date())來強制執行它,但它不起作用。smartGwt中的setEndDate()

DateItem dateItem = new DateItem(); 

dateItem.setTitle("Date"); 
dateItem.setName("dateValue"); 
dateItem.setUseTextField(true); 

TextItem textItem = new TextItem(); 
textItem.setAttribute("readOnly", true); 

dateItem.setAttribute("textFieldProperties", textItem); 
dateItem.setDisabled(true); 
dateItem.setRequiredMessage("Please select a valid Date"); 
dateItem.setEndDate(new Date()); 

即使現在我可以選擇日期19/5/2011,20/5/2011等等。

+0

你能發表一個示例代碼嗎? – RAS 2011-05-18 08:44:04

+0

編輯我以前的帖子。在編譯時,大多數java類都不可用於智能gwt編譯器。例如,我正在嘗試使用java.util.Calendar類,因爲大多數日期類方法已被棄用。 – 2011-05-18 11:44:08

回答

2

那麼根據文檔,dateItem.setStartDate()dateItem.setEndDate()不會阻止用戶選擇無效的日期。您可以從here中閱讀。

希望這可以幫助你。

+2

'DateRangeValidator drv = new DateRangeValidator(); drv.setMax(new Date()); dateItem.setValidators(drv);''當表單提交時得到驗證..希望這有助於。 – 2011-05-19 04:42:43

0

如果他輸入了更大的日期,您可以執行一個更改的事件,它將當前日期而不是用戶在日期字段中寫入的任何內容。

+1

這應該可能是一條評論。 – Robert 2015-04-08 08:17:29