powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Vaadin Sort on Date column
5 сообщений из 5, страница 1 из 1
Vaadin Sort on Date column
    #38471322
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет,

использую Ваадин 6.7.4

получаю датасет из бд и результат заполняю в Vaadin таблицу.

есть колонка типа Date, которую надо отформатировать, для этого использую formatPropertyValue
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
mainComponent.addContainerProperty(transactionDt, TDate.class, null);

@Override
    protected Table createMainComponentInstance() {
        return new Table()
        {
            /**
			 * 
			 */
			private static final long serialVersionUID = -8188804282068331981L;

			@Override
            protected String formatPropertyValue(Object rowId, Object colId, Property property) {
				
                // TDate field
                if (property.getType() == TDate.class) {
                	SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
                	try {
                		TDate dt = (TDate) property.getValue();
                		return df.format(dt.getUtilDate());
                	}
                	catch(Exception ex) {
                		
                	}
                }

                return super.formatPropertyValue(rowId, colId, property);
            }        	
        };
    }



после добавления этого форматирование сортировка по этой колонки не работает, клик по ней не реагирует. как можно пофиксить ?
...
Рейтинг: 0 / 0
Vaadin Sort on Date column
    #38471433
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас при создании колонки контейнеру, например IndexedContainer должно быть присвоено свойство, например так

Код: java
1.
2.
IndexedContainer ic;
ic.addContainerProperty("Дата", Date.class, null);



А у вас скорее всего строка там. Кроме того, если там была строка, то даже без форматирования, сортировка была неверной, а была похожа на верную, только из-за того, что "изначальный" формат сортируется по порядку, например если он такой ГГГГ.ММ.дд ... ну и часы минуты секунды милисекунды...
...
Рейтинг: 0 / 0
Vaadin Sort on Date column
    #38471442
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гыы, нашел свою старую тему по этому вопросу :)
...
Рейтинг: 0 / 0
Vaadin Sort on Date column
    #38471550
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да я так вроде и делаю

Код: java
1.
mainComponent.addContainerProperty("Transaction Date", TDate.class, null);



mainComponent это Table
...
Рейтинг: 0 / 0
Vaadin Sort on Date column
    #38471557
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разобрался спасибоб проблема была всетаки тут, надо так

Код: java
1.
mainComponent.addContainerProperty(transactionDt, Date.class, null);



уже ниже преобразовал TDate в Date. вот

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
@Override
    protected Table createMainComponentInstance() {
        return new Table()
        {
            /**
			 * 
			 */
			private static final long serialVersionUID = -8188804282068331981L;

			@Override
            protected String formatPropertyValue(Object rowId, Object colId, Property property) {
				
                // TDate field
                if (property.getType() == Date.class) {
                	SimpleDateFormat df = new SimpleDateFormat("dd MMMM yyyy");
                	try {
                		Date dt = (Date) property.getValue();
                		return df.format(dt);
                	}
                	catch(Exception ex) {
                		
                	}
                }

                return super.formatPropertyValue(rowId, colId, property);
            }        	
        };
    }

    private void useSearchResult(DOList searchResult) {
        for (int i = 0; i < searchResult.size(); i++) {
            DOCreditCardReport ccTransaction = (DOCreditCardReport) searchResult.elementAt(i);
            

            mainComponent.addItem(
                    new Object[] { 
                    				ccTransaction.CCPNRef, 
                    				//ccTransaction.transactionDate.formatIt(TDate.DDMONTHYYYY),
                    				ccTransaction.transactionDate.getUtilDate(),
                    				ccTransaction.ccUserFullName, 
                    				ccTransaction.publicationCompany,
                    				ccTransaction.tradeName, 
                    				ccTransaction.ccUserAddress, 
                    				ccTransaction.ccUserEmail,
                    				ccTransaction.formatCCLastFirstName(), 
                    				ccTransaction.ccTypeValue,
                    				TemplarUtil.formatCurrency(ccTransaction.transactionAmount , 2)                    				
                    			 }, i);
	            
            
        } // end of for
        
        mainComponent.setPageLength(pageSize);        
    } 
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Vaadin Sort on Date column
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]