2010-04-19 12 views
6

Zostałem poproszony o opracowanie systemu, w którym pracownicy mogą oznaczyć na formularzu ich dostępność w danym dniu tygodnia - na przykład pracownik może oznaczyć się jako dostępny w danym czasie na w danym tygodniu i niedostępne w innym czasie. Wygląda to trochę tak:Wdrażanie planowania wielu państw

http://img697.imageshack.us/img697/842/mvcb.jpg

Obecnie działa przez rendering pól wyboru w tabeli, zbierając zdarzenia kliknięcia w każdej komórce i zaznaczając pole wyboru, a tym samym komórkę odpowiednio. Używam wtyczki JQuery "click n drag checkbox" z here. Zostałem jednak poinformowany, że może istnieć więcej niż dwa stany dla danej komórki (na przykład dostępne, niedostępne, dostępne w danej sytuacji), w którym to przypadku powiązanie z wartością zaznaczoną w polu wyboru nie będzie dużo Wsparcie.

Nigdy wcześniej nie korzystałem z javascript lub asp.net i nie jestem pewien, jak najlepiej podejść do tego problemu. Idealnie mógłbym umieścić strukturę danych za każdą komórką, którą mógłbym zaktualizować do pewnego stanu, a następnie uzyskać kolor mojej komórki wiążąc się z tym - jednak jestem w czymś, co stanowi stratę, jak najlepiej to osiągnąć.

+1

miło widzieć dobrze ilustrowany problem – harryovers

+4

czy ten środkowy żółty kształt to dinozaur? –

+1

lol, ten po prawej to kaczka – harryovers

Odpowiedz

3

Dodaj zdarzenie kliknięcia do komórki - np. kliknij komórkę. Każde kliknięcie może następnie zmienić status komórki. Ten status można następnie przechowywać przez ajax lub za pomocą przycisku przesyłania, jak na formularzu. Każda komórka może odnosić się do ukrytego pola formularza, w którym można zachować status.

+0

Pozwoliłbym użytkownikowi kliknąć lewym przyciskiem myszy, aby zmienić dostępność (tak lub nie) i kliknąć prawym przyciskiem myszy z menu kontekstowego, aby ustal konkretne kryteria. Przez większość czasu ludzie będą po prostu tak/nie. Zdecydowanie użyłbym też ajax do aktualizacji bazy danych za kulisami. Większość programów kalendarza wprowadzi zmiany natychmiast po ich wprowadzeniu i możesz mieć problemy z "zapominaniem" o naciśnięciu przycisku "Wyślij". Każdy przycisk "submit" powinien oznaczać "Ok, skończyłem, zabierz mnie gdzie indziej teraz". – Sparafusile

+0

Podążanie tą drogą - wydaje się rozsądne, ale nie byłem pewien, czy to było możliwe. Powiedziano mi wyraźnie, że nie jest wymagane menu kontekstowe do ustawiania kryteriów - to też byłby mój oryginalny pomysł. Wydaje się jednak, że konieczna jest aktualizacja za kulisami. Pozdrawiam :) – MoominTroll

1

Być może zainspiruj się kalendarzem google. Możesz tam wybrać przedział czasowy w widoku miesiąca, przeciągając zakres dni przez kliknięcie. Myślę, że jest to szybszy sposób wprowadzania dłuższych okresów. (Podobnie jak dolna część smoka)

+0

i jest tam wtyczka kalendarza tygodniowego, która właśnie to robi. Nie znam linku, ale jest bardzo popularny na tych 10 wtyczkach jQuery, które musisz mieć blogi typu, więc google jest twoim przyjacielem. – robodisco

+0

Kliknij przeciąganie działa dobrze - jego implementacja ma kilka "stanów", które były problemem - teraz wiążę stan włączania/wyłączania z pola wyboru – MoominTroll

+0

@adam Prawdopodobnie myślisz o FullCalendar, ale ja Nie jestem pewien, czy to zadziała tutaj. – Ryan

Powiązane problemy