Ćwiczenie 10
Temat:
Kontrolki użytkownika
i serwisy
międzynarodowe
Cel ćwiczenia:
W ramach ćwiczenia student opanuje umiejętność tworzenia kontrolek
użytkownika i wykorzystania ich na stronie oraz nauczy się tworzyć się serwisy
międzynarodowe wykorzystując pliki zasobów i kulturę formatowania.
Kontrolki użytkownika
Kontrolki użytkownika umożliwiają wielokrotne wykorzystanie części interfejsu użytkownika i
związanej z nim funkcjonalności.
Każdą kontrolkę typu UserControl definiujemy w oddzielnym pliku z
rozszerzeniem .ascx. Plik ten opisuje wygląd kontrolki oraz może zawierać kod skryptu
serwerowego. Analogicznie do strony .aspx istnieje także możliwość umieszczenia kodu w
oddzielnym pliku z końcówką .ascx.cs.
Wygląd kontrolki użytkownika budujemy podobnie, jak wygląd strony przy pomocy
znaczników HTML i kontrolek serwerowych.
W odróżnieniu od strony kod wizualny kontrolki rozpoczyna się dyrektywą Control.
Przykład
<%@ Control Language="C#" %>
Wykorzystanie kontrolek UserControl
Aby kontrolka mogła zostać wykorzystana na jednej ze stron serwisu definiujący ją plik musi się
znalezć w jego głównym lub podrzędnym do niego katalogu. Dodatkowo na stronach
wykorzystujących kontrolkę musi ona zostać zarejestrowana przy pomocy
dyrektywy Register.
Przykład 30
<%@ Register src="Logo.ascx" tagname="KontrolkaLogo" tagprefix="moje" %>
Plik definiujący Znacznik Przedrostek
kontrolkę kontrolki znacznika
Środowisko VisualStudio dokonuje automatycznej rejestracji kontrolki w chwili przeciągnięcia jej na
stronę z Solution Explorer.
Przykład
<%@ Page Language="C#" %>
<%@ Register src="Logo.ascx" tagname="KontrolkaLogo" tagprefix="moje" %>
Istnieje możliwość jednokrotnej, globalnej rejestracji kontrolki dla wszystkich stron serwisu wewnątrz
pliku web.config.
Przykład
31
Wstępna inicjacja właściwości kontrolek
Często istnieje potrzeba zainicjowana wartości kontrolek z poziomu kodu w chwili ich wyświetlenia.
Zarówno w przypadku strony, jak i kontrolki dysponujemy zdarzeniem Load, w trakcie którego
możemy ustawić właściwości kontrolek. Metoda, która zostanie wywołana w chwili tego zdarzenia
musi nazywać się Page_Load oraz dyrektywa Control (lub Page) powinna mieć ustawiony atrybut
AutoEventWireup="true" (wartość domyślna).
Przykład
<%@ Control Language="C#" ClassName="Los" AutoEventWireup="true" %>
Zadanie 1
1. Przygotuj kontrolkę Kalendarz, która automatycznie wyświetla aktualną datę w formie:
01 07 2010
2. Wykorzystaj kontrolkę na stronie Default.aspx
Pojęcie kultury
Kultura serwisu definiuje nie tylko język treści w nim wyświetlanych, ale także format wyświetlania
takich informacji, jak data, liczba lub wartość walutowa.
Symbol kultury określa nie tylko język, ale także region jego wykorzystania (najczęściej kraj).
Przykład 32
en-US
Język
Region
W wypadku kultury wyświetlanych treści oprócz kultur szczegółowych istnieją także kultury neutralne
dla języka (oznaczane tylko symbolem języka, np. en) i kultura neutralna dla języków
niezdefiniowanych.
O tym, jakie ustawiania zostaną wykorzystane przy formatowaniu danych i wyświetlaniu treści
decyduje dyrektywa Page:
<%@ Page Language="C#" UICulture="pl-PL" Culture="en-US" %>
Kultura
wyświetlanych
Kultura
treści
formatowania
wartości
Domyślnie atrybuty UICulture i Culture mają wartość auto, co oznacza, że kultura jest automatycznie
dobierana na podstawie informacji nadesłanych przez przeglądarkę w nagłówku HTTP.
Pliki zasobów lokalnych
Pliki zasobów lokalnych są definiowane w podkatalogu App_LocalResources serwisu. Ich nazwa jest
identyczna z nazwą strony, której dotyczą a rozszerzenie .resx uzupełnione jest o symbol kultury, dla
której treści zawierają.
Przykład 33
Przykład
Gdzie:
" Info.aspx.resx plik zawierający treści strony Info.aspx dla kultury neutralnej stosowane w
wypadku wystąpienia niezdefiniowanej kultury użytkownika
" Info.aspx.en.resx plik zawierający treści strony Info.aspx dla kultury neutralnej języka
angielskiego stosowane dla dowolnego regionu języka angielskiego
" Info.aspx.pl-PL.resx plik zawierający treści strony Info.aspx dla kultury języka polskiego,
regionu Polska
Plik zasobów lokalny zawiera klucz i przypisaną do niego treść. Struktura klucza jest w wypadku
zasobów lokalnych narzucona:
KluczZasobuKontrolki.Właściwość
Identyfikator kontrolki Właściwość podlegająca
łączący ją z zasobem lokalizacji
Przykład
Wszystkie kontrolki na stronie, które swoją treść mają czerpać z pliku zasobów muszą zostać
uzupełnione o atrybut meta:resourcekey łączący je z odpowiednim wpisem w tym pliku.
Przykład 34
Przykład
<%@ Page Language="C#" meta:resourcekey="StronaZasob" %>
Pliki zasobów globalnych
W wypadku potrzeby wykorzystania tych samych treści na kilku stronach bardziej zasadne jest
umieszczenie ich we wspólnym dla wszystkich stron pliku zasobów globalnych.
Pliki zasobów globalnych są definiowane w podkatalogu App_GlobalResources serwisu. Ich nazwa nie
jest związana z nazwą żadnej strony. Posiadają rozszerzenie .resx uzupełnione o symbol kultury, dla
której treści zawierają.
Przykład
Gdzie:
" Teksty.resx plik zawierający treści dla kultury neutralnej stosowane w wypadku
wystąpienia niezdefiniowanej kultury użytkownika
Przykład 35
" Teksty.en.resx plik zawierający treści dla kultury neutralnej języka angielskiego stosowane
dla dowolnego regionu języka angielskiego
" Teksty.pl-PL.resx - plik zawierający treści strony Info.aspx dla kultury języka polskiego,
regionu Polska
W wypadku zasobów globalnych klucz wartości jest jednoelementowy, nie ma podziału na klucz
kontrolki i modyfikowaną właściwość.
Przykład
W przeciwieństwie do plików zasobów lokalnych, w wypadku plików zasobów globalnych należy
zawsze jawnie wskazywać właściwości, które mają pobierać wartość z pliku zasobów, nazwę tego
pliku i klucz wartości.
Przykład
<%@ Page Language="C#" UICulture="pl-PL" Title="<%$
Resources:Teksty,TytulStrony %>" %>
Przykład 36
Zadanie 2
1. Stworzyć serwis Multinational.
2. Umieścić w serwisie stronę główną Default.aspx z etykietami (Label) lblPrzywitanie
wyświetlającą napis Dzień dobry i lblInfo podającą krótką informację o serwisie To jest
serwis międzynarodowy. oraz przyciskiem btnZatwierdz z napisem Zatwierdz , który w
przyszłości będzie służył do akceptacji czynności.
3. Stworzyć stronę Kalendarz.aspx , na której umieścić etykietę lblOpis zawierającą treść
Dzisiejsza data: oraz przycisk btnZatwierdz z napisem Zatwierdz .
4. Przygotować pliki zasobów lokalnych dla wszystkich etykiet (Label) obu stron w
następujących kulturach: dowolny język (treści w języku angielskim), język niemiecki, język
polski w Polsce. Odwołać się do zasobu lokalnego na obu stronach.
5. Przygotować plik zasobów globalnych Opisy dla tych samych, wyżej wymienionych kultur
zawierający wspólny opis przycisków btnZatwierdz umieszczonych na obu stronach. Odwołać
się do zasobu globalnego na stronach.
6. Wstawić na stronę Kalendarz.aspx etykietę lblData, która automatycznie w chwili
załadowania strony ma wyświetlać aktualną datę.
7. Wymusić formatowanie wyświetlanej daty zawsze dla kultury język angielskiego, USA.
Przykład 37
DODATEK 1 Przykład dynamicznej zmiany języka na stronie
<%@ Page Language="C#" UICulture="auto" meta:resourcekey="StronaZasob" %>
<%@ Import Namespace="System.Threading" %>
<%@ Import Namespace="System.Globalization" %>
DODATEK 1 Przykład dynamicznej zmiany języka na stronie 38
Wyszukiwarka
Podobne podstrony:
technologie internetowe cw HTMLtechnologie internetowe cw MasterPage Sitemap themestechnologie internetowe cw CSStechnologie internetowe cw JS2technologie internetowe cw WStechnologie internetowe cw KontrolkiSerw1technologie internetowe cw Formularze Htmltechnologie internetowe cw KontrolkiSerw2technologie internetowe cw SkrSerwtechnologie internetowe cw JSTechnologie Internetowe 2Technologie Internetowe 1Technologie InternetoweInternational trade by technology intensityLab technologii ćw 5Lab technologii ćw 2 ogarnijtemat comwięcej podobnych podstron