Przestój w kodowaniu i prezentacja wyglądu aplikacji

Po stworzeniu stron produktów, klientów i profilu użytkownika, zamierzałem rzutem na taśmę dodać strony faktur i ich szablonów. Okazało się to jednak trudniejsze niż myślałem.

Przedstawienie problemu
Jako pierwsza, miała powstać strona szablonów faktur. Scenariusze przeglądania listy istniejących szablonów, usuwania ich, a także przeglądania ich szczegółów, są analogiczne do ich odpowiedników na stronach produktów i klientów, dlatego łatwe to zrealizowania. Problematyczne okazało się jednak dodawanie i edytowanie szablonów – realizowane w jednym widoku (partial view): PatternEditor.ascx. Chciałem w nim umieścić następujące elementy:

  • rozwijana lista klientów – po dokonaniu wyboru, w przygotowanej tabelce powinny zostać wyświetlone dane wybranego klienta,
  • lista produktów z możliwością dodawania i usuwania pozycji – zrealizowana w formie tabeli, której ostatni wiersz zawiera pole tekstowe (pod którym, po wpisaniu przez użytkownika początku nazwy produktu, wyświetlona zostanie lista podpowiedzi) i przycisk umożliwiający dodanie wybranego produktu
  • rozwijana lista dostępnych form płatności,
  • pole tekstowe przeznaczone do wpisania waluty płatności,
  • pole tekstowe przeznaczone do wpisania ewentualnych uwag do faktury.

O ile trzy ostatnie punkty to (od dwóch tygodni) nic nowego, o tyle dwa pierwsze wymagają głębszego zanurzenia się w ASP.NET MVC – poznania sposobu na wymianę danych między widokiem a kontrolerem bez konieczności odświeżania strony. Pierwsze, co mi przyszło na myśl, to oczywiście AJAX. Tutorial, z którego korzystam, wspomina co prawda o nim i pokazuje jeden przykład wykorzystania, ale to za mało.

Co się odwlecze…
Przez ostatnie kilka dni byłem odcięty od sieci – więc i od świata. Mogłem po omacku szukać rozwiązania, lub zająć się wykorzystaniem już posiadanej wiedzy i oprogramować przeglądanie i usuwanie szablonów – wybrałem to drugie. Zorientowałem się jednocześnie, że jeszcze w żadnym miejscu na blogu nie zaprezentowałem interfejsu mojej aplikacji. Co prawda, spora część widoków i prawie cały arkusz stylów to kod wygenerowany automatycznie, jednak z “dziennikarskiego obowiązku” pokażę kilka zrzutów ekranu:
[dane klientów i produktów są zupełnie nieistotne]
lista produktów
tworzenie nowego klieta
lista szablonów faktur
szczegóły szablonu faktury

Zanosi się na to, że w tym tygodniu nie zdążę już nic merytorycznego napisać. W przyszłym, mam nadzieję, uda mi się opisać rozwiązanie problemu stworzenia opisanego wcześniej widoku PatternEditor. Po krótkim przeglądzie dostępnych technologii, mam już chyba kandydata na miarę moich potrzeb: jQuery. Ale o tym w następnym odcinku. Zapraszam!