technologie internetowe cw 10 UC, Różne, Technologie internetowe
[ Pobierz całość w formacie PDF ]
Ć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#"
%>
<
table
style
="
width
:
100%
;
"
cellspacing
="0">
<
tr
>
<
td
align
="center">
<
asp
:
Image
ID
="imgLooo"
runat
="server"
ImageUrl
="~/Logo.gif"
/>
</
td
>
</
tr
>
<
tr
>
<
td
align
="center">
<
asp
:
Label
ID
="lblNazwa"
runat
="server"
Text
="Moja
firma"></
asp
:
Label
>
</
td
>
</
tr
>
</
table
>
Wykorzystanie kontrolek UserControl
Aby kontrolka mogła zostać wykorzystana na jednej ze stron serwisu definiujący ją plik musi się
znaleźć 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
kontrolkę
Znacznik
kontrolki
Przedrostek
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"
%>
<
html
xmlns
<
head
runat
="server">
<
title
></
title
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server">
<
div
>
<
moje
:
KontrolkaLogo
ID
="KontrolkaLogo1"
runat
="server"
/>
<
br
/>
<
br
/>
<
moje
:
KontrolkaLogo
ID
="KontrolkaLogo2"
runat
="server"
/>
</
div
>
</
form
>
</
body
>
</
html
>
Istnieje możliwość jednokrotnej, globalnej rejestracji kontrolki dla wszystkich stron serwisu wewnątrz
pliku
web.config
.
Przykład
<?
xml
version
=
"
1.0
"
?>
<
configuration
>
<
system.web
>
<
pages
>
<
controls
>
<
add
src
=
"
~/Logo.ascx
"
tagName
=
"
KontrolkaLogo
"
tagPrefix
=
"
moja
"
/>
</
controls
>
</
pages
>
</
system.web
>
</
configuration
>
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"
%>
<
script
runat
="server">
protected
void
Page_Load(
object
sender,
EventArgs
e)
{
Random
los =
new
Random
();
lblLiczba.Text = los.Next(1, 10).ToString();
}
</
script
>
<
asp
:
Label
ID
="lblLiczba"
runat
="server"
Text
="0"
Font-Size
="XX-
Large"></
asp
:
Label
>
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
treści
Kultura
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
[ Pobierz całość w formacie PDF ]