2012-04-17 13 views
6

Potrzebuję zrobić tabelę z edytowalną kolumną. Każdy wiersz jest osobnym rekordem. Chcę móc wyświetlać setki rekordów, wprowadzać w nich zmiany, a następnie przesyłać je z powrotem do serwera w celu aktualizacji. Nie jestem pewien, czy jest to naprawdę wspierane przez infrastrukturę formularzy.Yesod Edytowalna tabela

Czy istnieje sposób na sporządzenie powtarzalnej formy, aby uzyskać listę wyników? To wydaje się być najbliższym rozwiązaniem, które mogę sobie wyobrazić bez pisania własnego w javascript. Wszelkie pomysły na ten temat byłyby mile widziane.

+0

Czy wprowadzone zmiany obejmują wstawianie, usuwanie i zmienianie kolejności? Jeśli możesz obejść się bez tych rzeczy, wdrożenie tego * może * być dość proste. Jeśli potrzebujesz tych rzeczy, to prawie na pewno potrzebujesz trochę JavaScriptu, aby uzyskać płynne wrażenia użytkownika (JQuery ma pewne zalety, aby pomóc w tego typu rzeczach), a serializacja do iz postaci Yesod może się skomplikować. –

Odpowiedz

1

Nie odkrywaj ponownie koła. Po prostu użyj jednej z pełnych funkcji js grid, takich jak jqgrid lub extjs, jeśli chcesz mieć pełny pakiet komponentów interfejsu użytkownika. Używam jqgrid z yesod, edytuj wiersze zarówno w siatce, jak iw panelu zewnętrznym i prześlij zmiany z powrotem.

Myślę, że problem z twoim podejściem polega na tym, że znalazłeś swój młotek (biblioteka formularzy Takod) i szukasz gwoździa. Nie musisz używać wszystkiego, co się da, tylko dlatego, że tam jest.

+0

W rzeczywistości siatka danych, której używam, jest zmodyfikowaną wersją editablegrid. Właśnie zastanawiałem się, czy formularze haskell to wspierały. –

+0

Jeśli sieć może zostać przesłana pocztą, najprawdopodobniej przetwarzanie danych wejściowych będzie możliwe. Ale stracisz większość funkcji (renderowanie, sprawdzanie poprawności danych itp.). –