Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości część 2
Zaprojektowaliśmy stronę dodaj_dzial.aspx proszę jednak spróbować dodać nowy dział nie podając jego nazwy otrzymamy następujący komunikat
przekładając to na zrozumiały język: próbujesz dodać nowy rekord (krotkę) nie podając nazwy działu, natomiast w definicji tabeli została ona zdefiniowana jako wartość wymagana (Mandatory) w jaki sposób można zatem zapobiec tego typu sytuacji? W VisualStudio mamy do dyspozycji szereg kontrolek z grupy Walidacja
w tym przypadku wykorzystamy kontrolkę RequiredFieldValidator kontrolka ta sprawdza czy w polu umieszczono dowolny ciąg znaków, przenosimy zatem tę kontrolkę i umieszczamy obok kontrolki TextBox1
definiujemy parametry kontrolki, pierwszy to której kontrolki dotyczy
kolejny to komunikat jaki zostanie wyświetlony jeżeli nie zostanie wprowadzona żadna nazwa
oraz to co zostanie wyświetlone w kontrolce w przypadku braku wprowadzonej nazwy działu w naszym przypadku *
umieścimy teraz kontrolkę ValidationsSummary kontrolka ta zbiera komunikaty ze wszystkich kontrolek walidacji umieszczonych na stronie i wyświetla je w jednym miejscu, nie wymaga ona żadnej konfiguracji, zapisujemy dokonane zmiany
wówczas w przeglądarce otrzymamy następujący efekt
możemy również zmienić kolor czcionki zarówno wyświetlanej gwiazdki
jak również tekstu wyświetlanego w ValidatorSummery
wówczas w przeglądarce
przejdziemy teraz do zaprojektowania strony wyslij_wiadomosc.aspx w celu rozłożenia elementów na stronie z grupy kontrolek HTML przenosimy kontrolkę Tabela
w naszym przypadku będą potrzebne dwie kolumny zaznaczamy zatem trzecią i usuwamy
wprowadzamy teks jak poniżej, nowe kolumny uzyskamy wykorzystując klawisz Tab
szerokość pierwszej kolumny możemy zmieniać przeciągając ją
umieszczamy kontrolkę DropDownList oraz zmieniamy jej ID
umieszczamy kontrolkę TextBox oraz zmieniamy jej ID
analogicznie postępujemy z kolejnymi kontrolkami TextBox w przeglądarce uzyskamy zatem efekt jak poniżej
modyfikacji wymaga jednak TextBox do którego użytkownik będzie wprowadzał treść wiadomości we właściwościach tej kontrolki zmieniamy zatem z linii pojedynczej na wiele linii
oraz wprowadzamy liczbę wierszy
otrzymamy efekt jak poniżej
następnie w liście rozwijalnej wyświetlimy nazwy działów, czyli zawartość tabeli Dzial umieszczamy źródło danych, grupa Data kontrolka SqlDataSource oraz konfigurujemy
zapisaliśmy połączenie możemy zatem z niego teraz skorzystać
pobieramy dane z tabeli Dzial interesują nas obydwa atrybuty, nazwa którą wyświetlimy oraz wartość klucza która zostanie przypisana do tabeli wiadomosc posortujemy zawartość po nazwach działów
w ostatnim kroku możemy przeprowadzić test utworzonego zapytania pobierającego dane
teraz zdefiniujemy co jest źródłem danych naszej listy rozwijalnej
wartość jaką wyświetla kontrolka to Nazwa_dzial
wartość jaką przybiera lista rozwijalna to Id_dzial
zaznaczamy jeszcze opcję EnableAutoPostBack opcja to powoduje że przy zmianie wybranej pozycji zostanie przeładowana strona i lista przyjmie wartość klucza Id_dzial odpowiadającego wyświetlonej pozycji
w przeglądarce widzimy zatem wprowadzone działy na liście
proszę na stronie dodaj dział dodać dział jak poniżej
wówczas na stronie wyślij wiadomość
dodamy teraz kolejne źródło danych które będzie wstawiło wiadomości do naszej bazy umieszczamy zatem kolejną kontrolkę SqlDataSource i konfigurujemy ją
jako tabelę wybieramy wiadomosc
w opcjach zaawansowanych wybieramy generowanie zapytań INSERT UPDATE oraz DELETE następnie NEXT oraz FINISH
we właściwościach kontrolki SqlDataSorce2 definiujemy parametry zapytania INSERT
źródłem każdego z parametrów będzie kontrolka i tak w przypadku Id_dzial lista rozwijalna DDL_Dzial
oraz kolejne
obok pola tekstowego TB_Imie umieszczamy kontrolkę RequiredFieldValidator z grupy kontrolek Walidacja
definiujemy kontrolkę którą ma walidować
wprowadzamy komunikat jaki ma zwracać
oraz tekst czyli *
analogicznie postępujemy z kolejnymi polami umieszczając obok nich kontrolki RequiredFieldValidator oraz definiując kontrolkę do walidacji, treść komunikatu oraz tekst wyświetlany w kontrolce
w przypadku adresu email zastosujemy kontrolkę która będzie sprawdzać poprawność wprowadzonego adresu tzn. czy zawiera @ itp. Jest to kontrolka RegularExpressionValidator z grupy kontrolek Walidacja
definiujemy kontrolkę do walidacji
treść komunikatu
tekst
musimy również zdefiniować wyrażenie w oparciu o które będzie sprawdzany adres email
skorzystamy z gotowego wyrażenia
poniżej umieszczamy kontrolkę ValidationSummery
umieszczamy przycisk oraz zmieniamy tekst
tworzymy zdarzenie kliknięcia przycisku (klikając na niego dwukrotnie)
w naszym zdarzeniu wywołamy zapytanie INSERT kontrolki SqlDataSource2
oraz przeładujemy stronę w celu wyczyszczenia pól formularza
wówczas w przeglądarce proszę wysłać wiadomość nie wprowadzając żadnych danych efekt działania walidatorów
wypełniamy poszczególne pola wprowadzając błędny adres Email efekt działania walidatora poprawności adresu
poprawiamy adres email i wysyłamy wiadomość przed wysłaniem po wysłaniu
sprawdzimy czy nasza wiadomość znajduje się w bazie
przejdziemy teraz do zaprojektowania strony przegladaj_wiadomosci.aspx na której użytkownik będzie mógł przeglądać wysłane wiadomości rozpoczniemy od umieszczenia źródła danych czyli kontrolki SqlDataSource oraz jej konfiguracji
będziemy pobierać dane z dwóch tabel tzn. z tabeli dzial nazwę działu oraz pozostałe pola z tabeli wiadomosc, skorzystamy zatem z kreatora zapytań
jako źródło dodajemy zatem dwie tabele
następnie zaznaczamy które kolumny tabel będą pobierane
możemy wywołać to zapytanie
wówczas zobaczymy jego efekt zamykamy okno kreatora przyciskiem OK
następnie Next oraz Finish
w przypadku wyświetlania danych mamy gotowe kontrolki w tym przypadku wykorzystamy kontrolkę GridView z grupy kontrolek Data konfigurujemy ją wskazujemy jej źródło
za pomocą Autoformatowanie definiujemy jej wygląd
możemy również włączyć opcje Paging powoduje ona że rekordy wyświetlane są w paczkach po 50, czyli w przypadku 200 wiadomości na dole tabeli pojawią się w postaci linków cyfry 1 2 3 4, pozwalające wyświetlać kolejne 50 wiadomości oraz opcję Sorting wówczas klikając w nagłówek kolumny możemy posortować według niej zawartość tabeli
wówczas w przeglądarce w celu sprawdzenia pozostałych opcji proszę dodać kilka wiadomości
nagłówki kolumn stanowią nazwy pobrane z bazy danych zatem nie posiadają polskich liter, zmienimy to zatem
proszę sprawdzić opcje sortowania czyli