Używałem Ui: repeat do generowania tabel. Dzięki ui: powtórz, łatwo można uzyskać wiersze ponumerowane przy użyciu varStatus
. Jestem zależny od identyfikatora wiersza od varStatus podczas wywoływania komponentu bean pomocniczej do obsługi nawigacji po liście, na przykład przenoszenia elementu w górę lub w dół na liście.JSF 2 dataTable indeks wiersza bez DataModel
Teraz chciałbym stworzyć komponent złożony, który tworzy dostosowywalną tabelę ze wszystkimi funkcjami potrzebnymi do zaznaczania wierszy, przesuwania ich w górę/w dół itp. Aby to zrobić, funkcja Ui: repeat nie będzie działać tak jak ja ". t zobaczyć sposób obsługi różnej liczby kolumn; Muszę podać nagłówki w jednym miejscu, a ciało w innym (i nie dotarłem do punktu wiedzy, w którym mogę utworzyć komponent niestandardowy). Dlatego zamiast tego przeszedłem do datatable, ponieważ użycie tego oznacza określenie nagłówków jako aspektów w tym samym miejscu, co zawartość treści.
To zadziałało dobrze, dopóki nie zauważyłem, że z jakiegoś powodu nie było już varStatus
. Włożyłem wiele pracy w obsługę prezentacji list bez potrzeby używania datamodel
i nie chcę tego używać. Czy istnieje sposób, aby uzyskać bieżący numer wiersza, tak jak jest on wyświetlany w tabeli, bez korzystania z datamodel
?
Używam również viewScope i jeśli dobrze zrozumiałem, oznacza to, że nie mogę powiązać tabeli dataTable z komponentem bean.
Przeczytałem kolejny wpis, w którym miałeś to jako rozwiązanie, chociaż myślałem, że binding = "# {table}" był skrótem do wiązania z fasolą. Nie wiedziałem, że to możliwe. Dziękuję BalusC! – nivis
Nie ma za co. – BalusC
Myślałem dokładnie tak samo, jak @nivis. Może dlatego, że wartość atrybutu "var" NIE wymaga instrukcji EL, ale wartość atrybutu "binding" DOES. Uznałem, że jakiekolwiek nazwane wartości wewnątrz instrukcji EL powinny już być zadeklarowane (osobiście) i czułem, że nadawanie zmiennej pewnej nazwy (np. 'Table',' rowItem') NIE powinno się odbywać z instrukcjami EL. –