Jedną z podstawowych kwestii przy budowie interfejsu użytkownika jest walidacja wprowadzanych danych. WPF w tym obszarze oferuje kilka mechanizmów. Dzisiaj zajmę się omówieniem trzech rozwiązań: walidacja poprzez implementację interfejsu IDataErrorInfo (DataErrorValidationRule), walidacja za pomocą wyjątków (ExceptionValidationRule) oraz walidacja przy wykorzystaniu własnych obiektów reguł (ValidationRule).
O walidacji w ASP.NET MVC raz jeszcze - tym razem, skupię się tylko na stronie klienta. Wykorzystując do tworzenia layoutów, niestandardowe kontrolki, może się zdarzyć, że standardowa walidacja jQuery w ASP.NET MVC nie będzie działać - przykład z życia, konkretnie z dzisiaj: mamy textbox'a, służącego do wprowadzania kwoty - do wyrenderowania go, skorzystałem z pluginu do jQuery - autonumeric (warto się zapoznać - bardzo przydatne). Nie będę się wgłębiać w konfigurację samego pluginu, ogólnie rzecz biorąc...
Walidacja oparta o atrybuty walidacyjne jest w ASP.NET MVC świetnym rozwiązaniem - w standardowych rozwiązaniach sprawdza się znakomicie - jednak czasami, podczas pracy nad projektem dochodzimy do sytuacji, gdy zaczyna nam brakować standardowych atrybutów. W takim przypadku najczęściej warto stworzyć własny atrybut walidacyjny oraz jego obsługę. Nie jest to wcale takie trudne, co postaram się pokazać w niniejszym wpisie.Po pierwsze, atrybut walidacyjny Przykład - często zachodzi potrzeba sprawdzania wy...
Kilka miesięcy temu w tym poście http://premium-hands.blogspot.com/2011/11/walidacja.html przedstawiałem różne sposoby walidacji jakie są dostępne na platformie Silverlight. Jako, że ostatnio mam więcej czasu aby pisać jakieś proste aplikacje pod Windows Phonem potrzebowałem mechanizmu walidacji działającego pod tą platformą. Według MSDN-u wszystkie metody walidacji przedstawione we wspomnianym wcześniej poście powinny działać. Niestety po przerzuceniu mechanizmu z Silverlighta na Windows Phona okazało s...
Mobile development 4567 dni, 20 godzin, 37 minut temu 74 źrodło rozwiń
Funkcja walidujaca REGON w VisualBasic .NET : Napisałem dziś funkcje w Visual Basic .NET (bo nigdzie w necie jeszcze nie ma) walidującą nr REGON. Poniżej przedstawiam jej kod Public Function walidujRegon(ByVal numerREGON As String) Dim cyfraKontrolna As Integer Dim dlugoscRegon As Integer = Len(numerREGON) 'wagi regonów 'regon7 = 2,3,4,5,6,7 'regon9 = 8,9,2,3,4,5,6,7 'regon14 = 2,4,8,5,0,9,7,3,6,1,2,4,8 If (dlugoscRegon 14) Then If (dlugoscRegon 9) Then If (dlug...
Graficzne oznaczanie wymaganych pól w formularzach ASP.NET MVC 3 za pomocą jQuery.
Walidacja jest to technika sprawdzająca, czy dany obiekt spełnia pewne założenia poprawności danych. W WPF-ie oraz Silverlighcie istnieją trzy sposoby walidacji obiektów: walidacja poprzez rzucanie wyjątków, walidacja z użyciem interfejsu IDataErrorInfo, walidacja z użyciem interfejsu INotifyDataErrorInfo Walidacja poprzez rzucanie wyjątków Walidacja poprzez rzucanie wyjątków odbywa się w następujący sposób. W seterze danej właściwości dodajemy warunek sprawdzający czy wpisane dane są poprawne...
Ostatnio pokazałem jak można wygenerować panel zawierający walidację bez używania formy. Można go potem gdzieś dokleić i... No i nie działa:). Powód jest bardzo prosty: samo doklejenie htmla do dokumentu nie sprawia jeszcze, że walidatory zostaną obsłużone. Aby to osiągnąć należy wymusić sparsowanie nowych elementów przez framework walidacji. Okazuje się, że robi się to bardzo prosto...
W ASP.MVC 3 dodano bardzo przyjemną walidację danych po stronie klienta, która nie miesza w htmlu jak Gargamel w wielkim garze pełnym wypatroszonych kwiczących smerfów. Wszystkie dane chowa w atrybutach ("data-*" zgodnych z HTML5), a skrypty wywalone są na zewnątrz. Tak jak powinno być. Zwie się bardzo poważnie: unobtrusive validation.
Przez długi okres czasu zmagałem się z problemami związanymi z liczbami zmiennoprzecinkowymi w ASP.NET MVC 2. Problemów tych było tak wiele, że nie sposób jest omówić ich tu wszystkich. W większości przypadków dotyczyły one odmiennego interpretowania separatora (czyli znaku oddzielającego część całkowitą liczby, od części ułamkowej) przez serwer oraz przez walidator. Próbowałem wielu różnych sposobów, żeby sobie z tym poradzić, lecz nic nie dawało satysfakcjonujących mnie rezultatów. Okazało się, że wyni...
Dla odmiany zatem, w kolejnym odcinku moich zmagań nad projektem, przedstawiam zagadnienie walidacji danych wprowadzanych przez użytkownika w ASP.NET. Wykorzystane przy tym będą wbudowane mechanizmy, które sprawiają, że walidacja może być prosta i przyjemna, a przynajmniej nie tak straszna jak może si...
Dziś chciałbym omówić problem walidacji obiektów domenowych ale i nie tylko. Interfejs ten będzie można wykorzystać przy dowolnym obiekcie. Cele które chciałbym osiągnąć są 2: Przede wszystkim walidacja musi być wielokrotnego użytku i łatwo dostępna. Drugi cel to możliwość walidacji odrazu całego obiektu i zwrócenie do kontrolera informacji o wszystkich błędnych polach. Interfejs IValidatab...
Autor: Kolejny "kliento-walidacyjno-mvcowy post". Tym razem zmagałem się z niedziałającą walidacją po wpięciu w DOM HTMLa zwróconego z serwera. Akcja kontrolera kończyła się instrukcją: 1: return PartialView(viewName, model) , a wstawianie w odpowiednie miejsce po stronie klienta odbywało się poprzez wywołanie jQuery.html(). Zdziwienie moje było o tyle duże, że kawałek DOMu uzyskiwany przez przeglądarkę najwyraźniej zawierał skrypt odpowiedzialny za walidację (inspected by Firebug).
Utworzenie własnego atrybutu walidacji danych jest w ASP.NET MVC niezwykle banalne, szczególnie jeśli dziedziczymy z jakiegoś już istniejącego...
Automatycznie generowane walidatory client-side w ASP.NET są spoko - minimalnym nakładem pracy (dodanie atrybutu Required, StringLength, RegularExpression itd na właściwości modelu oraz jednolinijkowej instrukcji <% Html.EnableClientValidation(); %> w widoku) otrzymujemy informacje o błędnych danych bez wycieczki na serwer. Co jednak w przypadku, gdy chcemy sami obsłużyć/zablokować wysyłanie danych na serwer?
A jednak się udało i kontynuuje serie o walidacji Dziś zajmiemy się walidacją poprzez implementacje interfejsu IDataErrorInfo Interfejs znalazł się już w pierwszej wersji frameworka .NET, więc może niektórzy znają i używali go już w WinFormsach lub ASP. Aby zacząć prace należy dodać namespace System.ComponentModel. Należy zaimplementować dwie metody:Error Zwraca listę komunikatów o niespełnionych ...
Na tym oraz kolejnych dwóch postach postaram się opisać sposoby walidacji danych w kontrolkach w WPF. Zazwyczaj kontroli wprowadzanych danych nie ma jak poniżej: Celem tego cyklu wpisów będzie stworzenie walidacji która pozwoli nam na wyświetlanie komunikatów jak poniżej Wygląda ciekawie, a więc bierzmy się do pracy W WPF mamy 3 sposoby aby walidować dane:W propertisach (settery)Implementacja ...
Podczas tworzenia reguł walidacji w aplikacji webowej, może się zdarzyć, że standardowe Validatory nie wystarczają, aby zapewnić w pełni funcjonalną walidację. Typowym przykałdem jest sprawdzenie czy czy login już istnieje w bazie. Zwłaszcza, jeśli budujemy aplikację Ajax, która z definicji ma działać bez przeładowania strony. Z pomocą przychodzi. kontrolki CustomValidator oraz validatorCalloutExtender. Aby to osiągnąć wykonujemy następujące czynności. Dodajemy rządne Pole tekstowe i validator do strony...
Jednym z częstszych problemów twórcy aplikacji webowych jest konieczność upewnienia się, czy dane wprowadzone przez użytkownika są poprawne (np. czy wszystkie wymagane pola w formularzu są wypełnione lub czy dane mają odpowiedni format). Sprawdzenie danych musi odbyć się po stronie serwera. Z drugiej strony fajnie by było, jak by po stronie klienta nastąpiło sprawdzenie wprowadzonych danych, aby ten nie musiał wysyłać formularz do serwera, gdzie nastąpiło by sprawdzenie poprawności danych, a następnie zw...
Ustawienie właściwości MaxLength w kontrolce asp:TextBox pozwala na ograniczenie ilości znaków jakie użytkownik może wprowadzić w pole tekstowe. Ustawienie to działa jednak jedynie gdy właściwość TextMode kontrolki ustawiona jest na SingleLine lub Password (nie zadziała w przypadku opcji MultiLine)...