Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Снетков
Программирование
на ASP.NET
В.М. СН"",,,В
Программирование на ASP.NET
2-е и здани е, и с п равле нное
С нетков В.М .
2016
,
В.М. СН"",,,В Програм",ирование на ASP. NET
Прогр амм ировани е на ASP. NEТ/ В. М. Сне"ПФв - М.: Национ альный (}п.;рьпый
Униве р ситет" ИНТУИТ ", 2016
Кур с посвящен технологии прогр а ммирова ния web-прило жений на AS P. NEТ с
и спо льзованием Visua! Studio 2005.
В ку р с е по рроб но рассказывается об этапах создания web-са йmв, прогр аммировании
форм , сер верных и пользовательских элементах управления. Расска зывается о
средствах форм аmрования стра ниц, технологии ADO.NEТ, работе с файлам и и
каталогам и и упра влении бе зопаС НО СTh Ю са Йта .
Создание заготовки
.. ",-.- 1.
~ · IiiI III . 8,") . ('10 . ~l"
0 ' Ы ~H
0 0> '=
I 1I _
CJТЩJ
'ho",.,...,' "'''.' (horn<ImIфf not ""..-"" V"''''nfOm<t
ТooII. """""' di<k apno"", 11,.,., . """'., Е'''''''",.,,.,,I ..-.:1 <" S
0
0~
", ,-
~
С О1 +(
ClJIH
0 " ew
0 ' smDebuo;lл ;;
0 _C""W--.,
Solb::<l EXPOr<r C ~ I+ дI: + L
0 "
0 '" PГCV'""" \\' гФ"
"
0k Tool:x:>x Cb1 +N:·X
R.""Tocbo-
орtюпs
-"
~_. Envirrn rnent Аt s И--Цо :
I€'ИЬЩ.
Add- n;Ма cros Securiti
AutoRocover s и--t Рagoэ r>3WS cha .-.--.з l:
IhtIjJ:// msdl,m o:rosoft,com/sqlfrss"ml
Fm ar.::1 Реросе
Frnts ,.--,j Co crs Р [>]"",Oad сrnten! еуегу :
~ m rutes
I ~t ar.::1 Ехрor! Setth;)s
InternatOтia I Settщ s
Keybo<f-d
S"',<
Тaзk List
Вr o wser
ос C,.-, ce l
в.м. СН"",,,В Програм ", ирование на ASP. NET
Errpty Web
Si.,
Se:>fchOnlre
Т ОЩJ ", II»
Loca oo :
,
В.М. СН"",,,В Програм",ирование на ASP. NET
< !DO CТYP E html PUBLIC "- IIWЗС IIDШ ХНТМ L 1.0 Tra nsitio naVIEN" 'hu,
</div>
</foпn>
<!body>
<lhtml>
~ C:\",\WebSitel \
~·"~i;':.
t:I DefaLjtaspx.CS
Файлы >1< .aspx и >1< .aspx.cs - это файлы обычного те кстового формата . Мы
можем и х создавать и редактировать в обычном текстовом редакторе ,
н апример , Notepad (Бло кнот). Но в оболочке Visua! Studio 2005 это
,
в.м. СН"",,,В Програм ", ирование на ASP.NET
,
В.М. СН"",,,В Про грам ",и рование на AS P. NET
~ Cut
Сору
~ Р.зstе
I
~WebSltel
:::J f'G:!
AS P.N ET
_~_""ID I~
,СШJN1 ,,1
файлов.
Flle System
~ Select Ihe fO (jer уоо WCflt to 0 jE1 ,
Ffe System
I!J-O A ~JET - ~ I К ю-и-е C ~T Ст>ЕеН •
~ ~,O Larq.Jage C~
!Е-О Lar-qлge С+-+-
Local IIЗ
i!J-О LосlJJгес-r
~
FТF' Site
Remote Site
~-O u~
!Е-О VB,~T - i1J~1ы к »-К8 БарК9iJ Скоп, Ф
~-O Vrзu<ll С+-+- SlJJdioJ ,NET
В-О lМ:B
E;j·D ASP,I\ET
!ЕС! Cmtвlt
u
вС! EX<lmple~
, Ша .М"
~,O Pi::IJJ8S
I!J D [):Jfcu lt
@О Dв1vff2
~o Flash МХ 2004
@-а Flash_pfiJ
GO HT~
I!JD i::OIlS
~· o JavаSс фt
..:J
FoШ: Iс :\Cha Г\ВООk\I"IEВ\.>.SP ,NЕТ\ЕхаЩJles\We!JSitE 1
Оpen CCtxel
---
Ве SLfe the correct SCUce сопП-оl РЩ Iп is actiVe,
агЮ гю 1iIes are exdJsivery c:hecked out Ьу other
users.
ОрtlOПS
"*iIiJ
-"
~ -- Envirrnrnent Visual S!L.dOJ р; ор;:tз b:atm :
I,КОО. З87ХВ87DА244ЕЕ\W'" Щ gMМiW@itii"', "ЩФiD ~
Add- n;Ма cros Securiti
AutoRocover
1 4ЕЕ\М:<1 дС»И3Нты\Visual SW OJ 2005\ТеЩJ~tes\Ргор;:tтеЩJ~tes ~
Fm ar.::1 Реросе
Visual S!L.d OJ LSer item te"l'~tes
Frnts ,.--,j Co crs
I2448Е'МJи Де><уМЕ!Нты\Visual S!L.d OJ 2005\Те ЩJ~tes\ItemТе ЩJ~tes ~
I ~t ar.::1 Export Setth;)s
р А~ЩS smw Errcr List if b.J i(J finisГes with errct's
InternatOтia I Settщ s
Keybo<f-d Р Tra:k Active 118т n So lJtm Exp crer
9"'< Р SOOw ad\Iar.::ed bui(J coofg.rat ions
Тaзk List Г A~ays smw so u tm
Вrowser
Р Save rew p; op;:ts..tJen created
~- Projocts ar.::1 So U1:ions
Р "',..-п user v.t.эn tt-.з prop;:t b:atm is оо! 1rusted
$-- 5с...-се Crn1rol
i!J-- Тех! Editcr Г stюw оuч:out wr-dJw v.t.эn bJ i(J sta.-ts
I!J- Вusiness Intellqэncе Оезg:-вз Г PrO"l't fa- syrrbol O:: г"""m O:--<j Yvt.эn гюаm O:--<j fies
~- Оаtabзsе Tools
i!J- Debo...щ Щ
ос C,.-,cel
о< Car>:EI
D lШ
--~
--~
~ [;J ~
App_Data Default. aspx Web.Conlig WebSitel,sln WebSitel,suo
ОрtlOПS
I
Misc81~OCUS нтм.. ~ t o:m
-"
, Fi~ Е~tens оо
$ AII L"'"'F"ges
i!J Вдs o:
i!J CI
$ c;I:++
i!J css
-"
9 НТм..
, TdIbs
",m'
г "МЩi§.og
V"ldat oo
$ P~ " Text
i!J SQ.. Scr " t
ос C,.,cel
Cut
Сору
Paste
Paste Alteгn.ate
Х D~ete
View code
I!l View il Browseг
Synchronize Document Outjine
Fcxmat StЭect:ioп
Forma1jjng аnd Validation
we Ь .соп fig
конкретного приложения , содержащий настройки
безопасности , управления состоянием , памятью и др .
Создается оболочкой при создании первой страницы.
Для но рмальной работы приложения среда про ектиров ания , как и среда
выполнения , нуждаются в б и бл иотечных файлах и ссылках на ни х. По
"
в.м. СН"",,,В П рограм ", ирование на AS P.N ET
задач).
dd Reference
~"""
7,0,3:DJ,0 vl,O,3705 c:lfrogram Fies\Comm"
sysg ru l 2,0,0.0 ~2,0,50727 С:\WINNТlf.1iсгosoft,r-.E"
Syst8m 2,0,0.0 v2,0,50727 C:\W INNT\jI-1iсгosoftr-.E"
Syst8m,Cm fg..ratrn
еж Cct"lCel
</system. web>
</сопfigша tloп>
sta"t
~ View in Вrowser
~ Cut
Сору
Paste
R.t.-=.
BLМ
Acc.ssbllty
SШ- t qotкrJ>
r~SВ uld 0;:U:rIS
ыщ
= '% ------,'1 ~
'!Г
Clст Desgner
Оаш Design
DаtaЬзsе Dlig-am
Derug
ОЮJg Location
Oewe
Olibg Editor
Formal:trg
Image Edtor
Laywt
QU<:!Гy Designer
Report В<xders
Report Formal:trg
S:::oJrce CmlIoI
stcnJ.ard
StyI<:o Sh:et
Table Desi g-er
Text Editor
\fiew Desigler
XГVL Dаш
хм... Ed tor
хм... Schema
Customi:ze"
~~~
" ~=~6'O~~~ Page
~tsc~ Navф tcr 3,0
в <5cr:ipt r:unat =
I pr:otected vо EJ~~~~Wl~~ct-,~~с,с,"~~Ig'-ет--~
<system.web>
< xhtmlllСопfоrma псе е паыeьs оl еtеR епdегiпg="truе" />
</system.web >
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Введение в Web-сайты
<html>
<head >
< titlе >Uпtitled Dо с umепt </titlе >
< mеы http -еq illv= "Со пtе пt-Туре" content=''textlhtml; charset=windows- 1251">
</head>
<body>
<h2 аlign="сепtег' '> Страница с об ратн ой отсылкой</h2 >
< fо пn паmе ="fопnl " method="post" action="">
<center>
<input type="submit" name="S ubmit" value="Submit''>
</center>
</foпn>
</body>
</html>
и дет сеа нс
( сессия )
г--
Запрос / GEТ
" Запрос
а..
w ОТклик"
) Паkеты
< ОТклик
(')
m
м Il. /
::J:
1- "tJ
~
-1
1-
::J: Обратная Обратная -1
"'tI m
а..
ОТСЫЛr.:з/ POST ,ОТСЫЛr.:з
m
LO
~ отклик"
) Паkеты
<
/ ОТКЛИК
"tJ
"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
A_
= ral:e< ""~"
Corfipotrn
Irt~R )
Едсе "
Irt"""",
""~ ,--
А "тс..."н " А д "",,-,::т р " Дат" н "Р"Н"
~~
.%"
..,."' Т ЖМ",
~-
~
y cт po:k T ",
~
К-""-"т у ра -, 'о
~-
~
'М-"К1
Q;,
"_.
Г'оо"Ь>О<оОТ "
(о)
~"
~"
Сеть "
YA'neнны1 "
С "" "Т е",,
,-
CK_r-ы " C""ц "~JЪНЫe
00ЗЮ)о(НОСТ Н
Те,,"фоо "
~,~
~
,~ ,
[&]
_О"
11
х"
~
Э"е""pont1 " ,-"
С Тi>t<Д "l' ТЫ
... :"81·
~ .•
добаВЛ~~I1Е! И
удаленне ~I
KO~OHeHTOB ~
Про,раммupoвtJNШ' 110 ASP.NET
Windows ,~,
Компоненты Windows
Вы молсете дооаеить ИJlI.i lJ\ал.IIЪ KOМ'lc.1eнты Windovvs 21]00
Комnoне
СС~С':'~-С________________________________~~~СО
11Mf1 ...:J
Опvcание СJl\jЖбы 115 (пщцеРJJ:ка 006 и FТР]СГlO,IJД8ржкO!iFrOlltРа.;щ
Т~Ю~ЦИЙ~ cтp~"'-IASP, поо.клlOчеr-и:. к Мз.У>1Д~Х И
aspnet_regiis.exe /i
=- Inetpub
---------------------
сервером.
Зе",ф 01 1,...,
Terrp~tes",
[] З87ЗС887DА2448Е
CJ COIlsole Root
I±Н:З Fron1:Page Server ExtenslOnS
_т е
Bгowse Witll.,.
Re1Yesh FoIder
Cut
Сору
Paste
Property Pages
G1о Ь а lR еsошсеs
Содержит файлы ресурсов .resx и .resources,
Арр
- компилирующиеся в глобальные сборки
Зе",ф 01 1,...,
Terrp~tEs",
в nан ели Solution Exp lorer мы увидим файл разметки стра ницы
Default.aspx и файл отделенно го кода Defauk. aspx.cs (застраничный файл ,
фоновый файл поддержки), а также созда нную особую папку Арр_Оаы
App_Data
В ~ D€faut,aspx
!J D€fault,aspx,cs
~523b9284 111
~Edt V'feW Fav<Xltes TooIs НеР
'"' Bock .... ...... i!J I <a Seif"ch ~ Fd:1ers @ [.~ ~ )< ~ J шm ....
Addess I"E; с :\WI~rosoftJ.ET\Framew<xk\Y2,O, 50 727\Temporif"Y АЧ',~ FIes\mуlТstsitе\Збd2а9ю\52::Ь9284
• defiUt,аspх,сdcю7d2_свt>Pes ut,сcu
• defдJt,аspх,сdcю 7d2_cвt>Pes utcomp!<:d
hash, web
создан ии DLL-библиотеЮ1.
-
•
&J
с <ы
r.w lc atL"
D
Мао"" р"'9"
iЭ
"оо
Crnfg.xati"
~
Wob uoc>r
Cm1rol
••
х м.. File хи
~
н тм.. р"?,,
1m
.. Schema
~
Woo SerV CG
li1
Тех l File
~
C~C
JjJ
P escиce Fi le
~
sty k> ShGGt
1]
SQ.. Database
1m !i]
- , ~ ~. ~ ~ ~
DataSE't
~~
Si"~ ~ ile w eb
Fct"m
VВScrjJt File
"-' JScr " t File
Name : I Page2,aspx
~523b9284 _
:.о 523Ь9284 _
---------------------------------------------------------------
конфигурационные файлы
machine.conf1g
е CONF IG
i
web.-col1ffg
• CON FIG
t
wеЬ .сопfig
е wwwroot
f f
vveb.con'fig vveb.conflg
е wwwroot\WebApp1
... е wwwrootl.We bA ppN
t f
в
web.conf1g
VW!bApp1\Dir1
... е
web.config
WebApp1\D irM
...
Способ 1
Тм page carmt ье rm in dei:u;J rmde b8CEtJSe debuggh;j i:3 mt anabled n th8 Web,coofl;J
file. What would you like to do?
ОК CEi1cel
предла гающее добавить новый файл web .co nfig с о пци ей включения
отладки. Ниже БУдет пр ед.УПреждение, что п е ред развертыванием
отлаженного прилож е ния эту о пцию в файле настроек следует Удалить .
Щелчок на кно пке Ok заставит оболочку создать web.config в корне
"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Способ 2
U~e thi~ раае to configure your application with values t hat you do not V'lant
to ha rd -code into your page~, епаЫе your application to ~end e-mail,
configu re debugging, set up а default еггог page, and stop ог start your
applici'Jtion.
""'"
.1
Config ure the settings for deb LJgging and tracing your
аррliсаtiо п.
г ЕпаЫе dеЬugg i пg
г Capture tracing information
с Ву categoгy
Способ 3
~
с<ы
~
X~ Fi"
tm
XI~ Schema
li1
Text Fi"
!IJI
Resc....-ce Fi "
IJ
SQ.- Database
"W1c atL"
tm -~, ~ шf· ~ ~ ~
DataSet
~ff
Si l9~ ~ i "Web
Fe<m
VВScr"t Fi"
"-' JScr " t Fi"
умолча нию
виртуальную страничу
перезагрузки: компьютера
Добавляет трассировку в
ОТЮlик страницы только
@ Local юсаlOnly= ''truе'' - по
тогда, когда она запрошена с
requests only умолчанию
того же сервера, где
развернуга ( по умолчанию)
Добавляет трассировку в
ОТЮlик страницы по запрос)';
O All requests юсаlOnly= "falsе"
поступившему с любого
компьютера
О Ву categary traceMode="SortByCategory"
Результаты трассировки
сортируются по секциям
Количество запросов
страниц приложения ,
сохраняемых средой
исполнения в файле trace.axd.
Number of Э тот же параметр определяет
trace requests количество запросов первых
to requestLimit="lS"
запросов, при которых
ИНДИВИдУальной странице
трассировочную
инф:Jрмацию при
pageOutput= ''true''
Se)ect whk:h trace resuks to cache:
Сохраняются результаты
O Most recent
mostRecent= ''true'' трассировки самых
trace results
последних запросов
При достижении
установленного количества
перестает обновляться до
@ Oldesttrace mostRecent= "false" - по
следующего перезапуска
resuks умолчанию
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
приложения, сохраняя
результаты трассировЮ1
умолчанию.
~--- -~
Привет всем!!!
Request Details
Session Request
х 5cbOs22bs5b1445rm3 1d u 55 GET
Id: Туре:
Time of St.atus
07.01.200811:00:40 200
Request: Code:
Request Response Unicooe
Unicooe (UТF-8)
Encoding: Encoding: (UTF-8)
Тгасе Infoгmation
From LlI~
ClItegory MesslIge From First(s)
(.)
aSpX.page Вegin PreInit
aSpX.page End PreInit 0,0182579070803692 0,018258
aSpx.page Вegin Init 0,0209208153550242 0,002663
aSpx.page End Init 0,0389624938 3 6 50 72. 0,018042
aSpx.page Вegin InitComplete 0,0394064050039879 0,00044<CJ
aSpx.page End InitComplete 0,0407646781923401 0,001358
aSpx.page Вegin PreLoad 0,0427593451122978 0,001995
aSpx.page End PreLoad 0,0441952818025755 0,001436
,.,~~,- '~~...I .....
C~<><>" <>,...,....,,~,...
Если тр ассир овка страниц В Юlюче на « trace enabled= " true "
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Flle Sys:tem
9:t
Re System
Select lt1e foOO- уоо w,.-,t to Cf'8'l.
] ЕМ'ТЕ МО
~ ,~""'
Adm n 5cr \Jts
Loczl IIS
~
"'00'
iВsa rllJ Рз
J
Re mote Ste
IfJO
~D kav
iED KPCМS
iEO LJ
iED f..'OO ile PhJnes
iED ~8Cow_2OJ6
юD мs SQL SERYER
iEO rr=bs
tiIo М5SQ.J
IfJO f.i: _1
~ ,,",~,~L-.; n.,cc,~~" ~
FoOO- :
'1 с".~':~:~"'ш:\:~=м:оо:::,--------_"':='---==-
cpen Са гсе l
Flle Sys:tem
Re
9:tSystem
Select lt1e foOO- уоо w,.-,t to Cf'8'l.
юD IDWTEМO •
~ $а Inelp<b
~ ·O Adm n 5cr \Jts
Loczl IIS
IE О flp;oot
~ IE О iВsa rllJ Рз
FТP Ste еО rnai r oot
IEO 5cr \Jts
IEО WЩ:м.Ь
I;JO r:lll!l
J
Remote Ste
юО МyF rstsite
IfJO JВu Нзг7
~D kav
iEO KPCМS
iEO LJ
iED f..'OO ile PhJnes
iED ~8Cow_2OJ 6
юD мs SQL SERYER
iEO rr=bs
tiIo М5SQ..7
IfJO f.i: _1
..L..J,..C'"1 ,,",~,~L-..; г>.,cc,~~" ~
FoOO-:
'1 с".~':~:~"'ш:\:~=м:оо:::,--------_"':='---==-
cpen Са гсе l
с :ITrrpV>t,-п- , CS t.
fme S t:J1JJS
.. G] Dof.ut .ЩJХ ~.,.. 0!i . D1 . 2OCIЗ 16 :3'5
.. ~ c.,r.ut .~ ~I<" 29.0 3 .= 12:405 07.D1. 20ct3 10 11
"Gj Р"9"2 .Щ'Х ~J<" 0!i . D1 . 20С1З 1 26
"~ P"9"2 .• "P ~I<" 05 . 01 . 20С1З 22 :03
!a.,.",mn"o;J Ltdlq 07. D1 . 2OCIЗ 10 : 11
St<ltus :
(ОРУ I'torn Scuce wю ,т со Rerno:e wю ет ~ IhshOO , coгcp~ а! QJ ,QI, zcaз Ш : 51 5J , у""" L"" ,, -
~~=============-~~-~
• ~3апустите броузер ком пьютера, за грузите страницу по
умолчанию (Default.aspx) через URL и п ощелкайте несколько раз на
кнопке Refresh, затем то же самое сделайте дл я страницы
Page2.aspx. По сле этого также через URL вызовите виртуальную
страничу Trace.axd, на которой и будет собрана вся трасс ир овка
последних запросов
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Application Тгасе
[ clea r cu rren t tra ce ]
Physical Directory:c: \inetpub\w wwroot\
Секция Описание
Reqllest
Содерж ит общую инф:Jрмацию о запросе ст р аницы
Details
Содержит сведения о пр оизводи тельно сти , связанные с
событиями жизненного цикла страницы. В столбце From
First(s) находится абсолютное время , отсчитываемое с
Тгасе
l' • момента получения запроса страницы (нулевое время) до
lпюпnatюп
начала обработки очередного собы тия. В столбце From
Last(s) nоказана дли тельн ость обработки nредыдщегоo
события.
Session
Содержит все n ереме нны е сеанса и их знач ения
State
Appocatio n
Содержит все n ереме нные nриложения и их состояния
S tate
Reqllest
Отображает cnисок всех файлов cookie (куки), полученных
Cookies
сервером в составе запроса
Collection
Rеsропsе
Отображает список всех файлов cookie, переданных
Cookies
броузеру в составе отклика
Collection
Headers Отображает список НТГР-заголовков, полученных сервером
Collection с запросом
Rеsропsе
Отображает cnисок НТГР-заголовков, переданных броузеру
Headers
в составе ОТЮlИка
Collection
Fопn Содержит пары key=value элементов ф:Jрмы, отправленных
Collection броузером с обратной отсылкой PostВack
Q llerystring
С 11_·
оШ:"сtюп
Содержит пары key=value, ВЮlюченные в строки запроса
Server
Отображает состояние всех серверных nеременных
Variab)es
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Выводы
"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Web-формы
<html>
<head >
< title>Посылка сообщений </titlе >
<meta content=''text!html; chaгset=windows-1251" http-еquiv="Сопtепt-Туре
</head >
<body>
< fопn method="get" паmе="fо пnl ''>
<р>
Ваше сообщение:
<input id="rпеssаgе" name="message" type="text" value='Hello, world!'':
<br>
Кто посылает:
<input id="autor" name="autor" type=''text'' vаluе="СНЕТКОВ В.М.">
</p>
<р>
• О Петров Петр
• О Иванов Иван
Submit
WеЬFОПIl5 . htm?
message= НеПо%2С +World%21&autor=C НЕТКО В + В.М.&О К =Submit
"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
J.. ..
butlon
t J!; Cut -
'tI Сору
lfI Paste
Paste Altегn.зtе
Х Delete
Style ...
RlIl As Serveг Contrd
I I
I!З. View in Browser
Edrt Imag€
Show Smart Tag
rE Rе1Теsh
~ Propeгbes
Если мы разрабаты ваем актив н ую стра ниц у "с нуля", то лучше сразу
п риме н ять серверные элементы управления, где уже автоматически
встро е н дескр ип тор runa t=" s е rve r " . и более того , если его уб р ать ,
это БУдет счи таться Оl.Ш1бкоЙ. Дескрипторы, представляющие серверные
элемен ты , начинаются с метки asp : Т ип элемента , далее следуют
111 "
Зе",ф 01 1,...,
Te"l'~tEs",
Loca~ m : "lcC
"O oC
,,=.Cm
---i!" Гсlс--;\,,"";;;i\w;;"';ы;о,•;-,----::========---:i!~.. ВrOWS8",
L~: IC\C
ruC,C"C,,------i!;]
С:\ Tmp\WebSi!e1 \
Ц! App_Data
(>реп Witi1
D V>e., DeskJner
Vi€w Component Designer
ВUikJ page
JIi Cu!
Сору
Wete
< !DQ CТYPE html PUBLIC "- /IWЗС /IDТD ХНТМL 1.0 Tгans [ionaVIEI
<script nmat="server''>
</script>
Создание обработчиков
}
</script>
</body>
<lhtml>
Default.aspx*
liJ Обновить
}
</script>
"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
<div>
<asp:Label ID='1.abel1 " nmat="server''> </asp:Label>
<asp:C heckBox ID="C heckBoxl " runat="server"
Text="Red" I>< br 1>
Имя :
< a s p :Te xtВox ID =' TextВo x l " runat="se rve r ''>C HeTКOB </asp:TeX1
IE О ,ЬЬа8С Тоо Ь
IE Dob.щ hJ
1jJ·· Dev O:e Tools
г snap р.хеl-Ьаээd pos ~ms in:J s~es to tffi b l ~"."'" SE(t ..... :
ш нт м. Оез чer
, Ю-izооtal spac ..... :
rs-- pixels
Г pixels
о< Car>:EI I
I
CheckBoxl System.Web.UI,WebCOIlU'"
Disposed
Init
Load
PreRender
Unюad
"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
~! lюdу )-
Detщ
~ •• lisbfy
мake Sз т е Эzе
•
Н<xizalt3 Spach]
•
УегЬ:aI Spach]
•
,,&
•
Ле гко замети ть , что эти действия п ривели к добавлению в дескрип тор
<d i v> атрибуга в н угреннего стиля
</div>
Это наглядный прим е р того, чт о зная где и что подкруги ть, можно
п одкручивать и н а прямую. НТМL-дескрипторы такие "одноклеточные",
что все их пов едение ' 'написано у них на лбу". Но чтобы опуститься до
их уровня , нам нужно попот еть при подъеме в гору Серверные
элементы из вкладки Standard на много сложнее, зато несравненно
функциональней и полностью подцерживают парадигму объект НО
ориентированного программирования. Их настр ойка большей частью
выполняется через код С# и п анель Properties.
Полностью код страницы в режиме Source для нашего при мера будет
таким
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
<script nmat="server''>
protected void Page_Load(object sender, EventArgs е)
{
Label1.Text = 'Текущее время:"
+ DateTnne.Now.ToLongТuneStringO;
Label2.Text = TextВoxl . Text + "!!!";
}
"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
06f108ИТЬ
скрытых полях.
пользователем.
</script>
Ах!, какие умные эти серверные элементы: сами сеют - сами жнyr
- сами песенки поют!!!
• ~ыделите элемент
Labe 1 1 и установите его свойство
EnableViewSta t e в состояние False (по умолчанию оно
установлено в значение T r ue ). Немедленно в дескрипторе
элемента появится атрибyr EnableV i ewSta te= " Fal зе "
"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
вида. Про несе рверные (нет атрибyrа runa t == " se r ver " ) HTML-
эл е менты такого не скажешь . Web - элементы с ВЮliЩки Standard - все
серверные .
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
!
Ин и цм али.э аЦИ>l
3 IWДOl 1lOJl;.;wвоп еля
!
Про ве pt:a
4 ДОСТQl3 еpt1 ост и
!
ОбрабОТl:а
5 соБЫ ТИЙ
6 I 7
... , \. Броуз е р П ОЛУ"'OIет OТ~
8 Очоост <о
"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
<script nmat="server''>
protected void Page_Load(object sender, ЕveпtAгgs е)
(
Label1.Text = 'Текущее время:"
+ DаtеТnne.Nоw.ТоLопgТnneStгiпgО;
Label2.Text = TextВoxl . Text + "!!!";
"
В . М. СН"""'Б Про'ра....МuроваНuе 110 ASP.NET
состояни я флажка.
Обработка событий
1. Page . Ini t
2. Page . Load
з. Te xt Bo x . Te x tChanged
4. Button . Cl i c k
S. Page . PreRende r
б. Page . Unload
ЭТО последняя оста новка в ж изн е нном ЦИ ЮJе страницы. И стори чески
сложилось та к, что событие Page . PreRender обозначает посл еднее
действие п еред пр еобразова ни ем страницы в НТМL.
Очистка
•
l/ШIiIIIII
D
м." ,... Р"9"
[!j]
_ с_
Ccn'ro l
00
КТf.1.. ""9"
!i
Web S• ..,~e
~
С",,,
~
stj i< SI"e"t
CiiJ
C~,
.
Fi:"
ij
SQ..Doi'->Ь=
1m
Dазset -~, ~
5Ite М"!)
1J]r"
с
M:N e I'Joo
~
\'В5C r "" F(e
lf.jJ
,-,
~
.J5CfjX " "
Ib"diof ' ..m
~
rв::;"
I д form for Wob ц" ь""",
-"'" ~ ф1 jjJ
~W I p~ "w , ,,,p,
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sуstеm.WеЬ.U I .WеЬСопtrоls.WеЬРаrts;
using System.Web.UI.HtmlControls;
if (Page.lsPostBack)
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
{
IblInfo.Text += "< Ь > Эта страница запрашивается не впеРВЫI
}
}
Butlon
8utton
сохр аняются.
Ка ждый раз, когда страница создается в ответ на НТГР -за про с , система
AS P.NET инспектирует фай л .aspx. Для каждого найденного
дескри птора элемен та управления она создает и настраивает объект
элемента управления, а затем доба вляет этот объект к странице как ее
дочерний элеме н т управления . Сс ы л ки на все дочерние элеме н ты
страницы размещаются в коллекции Раgе.Сопtrоls.
Код разметки для получен ной страницы долже н выглядеть при мер н о
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
так
<html xm1пs="httр:llwww.wЗ.огgl1999/xhtml">
<head nmat="server">
<title> Дерево элементов ynравления </titlе>
</head>
<body>
<р>
<р 1>
<asp:Labe! ID=''Label1 '' runat="server" Text=''Labe!''>Name:</asp:La
<aspTextBox ID='TextBoxl" runat="server" Wklth="195px''> </asp:l
</asp:Pane!>
< аsр:Вuttоп ID="Button4" runat="server" Text="Button4" 1>
</div>
</foпn>
<р>
Bu1lon3
Name: L -_ _ _ _ _- '
Bu11on4
Это статический т ек ст 2
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
Response.Write("<hr 1>');
}
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
}
}
}
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
ВuttопЗ
Name: LI_ _ _ _ _ _ __
Bu11on4
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
Пример:
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
Dуn.зmicВutton.3SPХ.СS DvnamicButton,aspx*
• Reset Text
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
результат
Resel Тю:l .
,ОС
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
&пЬsр;
< аsр:Вuttоп ID::::''Вuttоп1 '' ruпаt::::"sеrvег" Text::::''Reset Text" I>< br 1>
<ш 1>
< аsр:Вuttоп ID::::''Вuttоп2 '' ruпаt::::"sеrvег" Text::::"Create Вuttоп" 1>
&пЬsр;&пЬsр;
< аsр:Вuttоп ID::::''ВuttопЗ '' ruпаt::::"sеrvег" Теxt::::''Rепюvе Вuttоп" ОпСliсk=
</div>
</form>
<!body>
<lhtml>
Листинг
DупаmiсВuttоп.аsрх
Дескрипторная часть страницы
• файле
usiпg System;
usiпg System.Data;
usiпg Systеm. Со пfigша tiоп;
usiпg System.Collections;
usiпg System. Web;
usiпg System. Web.Security;
usiпg System.Web.UI;
usiпg System. WеЬ.UI.WеЬСопtгоls;
usiпg System. Web. UI. WеЬСопtгоls. WebParts;
usiпg System. WеЬ.UI.НtmlСопtrоls;
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
DynamicButton.aspx.cs
DynamicButton.aspx
Класс Page
1. Внугренние объекты
2. Рабочие свойства
з. Специфические страничные свойства
'"
В.М. С """,,,в Про,р а ммupoвtJNШ' 110 ASP. N ET
ш
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Объект Request
Свойство Порождак
ApplicationPath string
ш
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
AnonymousID string
Fi l ePa t h string
Curren t ExecutionFilePathstring
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
IsAuthenticated bool
IsSecureConnec ti on bool
IsLocal bool
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Ur l Sys t em . Uri
UserAgent string
UserHostAddress string
UserHostNa me string
UserLanguages string
Объект Response
'"
В.М. С """,,,в Про,р а ммupoвtJNШ' 110 ASP. N ET
Ex pires i nt
ш
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
IsClientConnec t ed boo l
Write(char) ;
Write(char [ ] ,
int , int) i
Write(objec t )
Write(string)
BinaryWrite(byte[
] )
В.М. С """,,,в Про,р а ммupoвtJNШ' 110 ASP. N ET
Redirect(string) ;
Redirect(string ,
bool)
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Прим е р :
Объект Server
Представляет
ком п ьютера , f
за п ускается ст
с ц елью его и /
для остальной
Создает эюем
объекта , о п ре/
п ро гр амм н ым
CreateObject(string) i
и дентификато
CreateObject(System .T ype) Ис п ользуется
совмест ИМОСl
yn рощает взау
СОМ-объекта
И звлекает объ
п ослед н е го не
н улевую ССЫЛI
И СЮJюче ни я н
В.М. С """,,,в Про,р а ммupoвtJNШ' 110 ASP. N ET
ИСЮJюч е ния н
GetLas t E r ro r ()
Используется
событий при л
пров еряющеп
ситуации.
Осуществляет
кодирование (
допустимыми
Htm lEncode(st r ing) ;
которые н е БYi
Htm lEncode(st r ing , воспринимап
ж ес т к и й Пf
&пЬзр )
кириллицу, %,
Url Decode(s t ring) ;
Раскодирует с
Ur l Decode(s t ring ,
символов uю
System .I O . Te x tWrite r )
Выполняет те
что и UrlEnc
работает с ба~
Ur l TokenEncode(byte[ ])
массивом, кот
Base64
Выполняет те
В.М. С """,,,в Про,р а ммupoвtJNШ' 110 ASP. N ET
работает с ба~
Ur l TokenDecode(s t ring)
массивом, кот
содержит дaНl
Base64
Возвращает фJ
файл , соответ,
MapPath(string) определенноrv
виртуальному
на Web-сервеI
Передает ист
другой Web-cl
текущем прил
метод по хож f
Transfer(string) ;
Response . 1
Transfer(string , boo l ) ; но работает бl
н ельзя примеl
ASP.NET (нап
или ASP)
Например:
ш
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
Например:
// Открытие файла
StreamReader reader = new StreamReader(physicaIPath);
// Что -то делаем
reader.CloseO;
Объект User
пол нофункциональными .
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
011 Cut
I~ сору
~ Paste
Р aste Alternate
'х Delete
Style ...
Rlfl As Server ContIoI
I I
V~w code
V~w Component Dбignег
Edit Image
liJ Re~esh
i;;\ Properties
Серверные НТМL-дескрипторы
m
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
r ------ - -- ------- \
Пространство имен System.Web.UI.HtmIControls
I I
rttmlCQntrQI
f--- I
I
I Htmll npuК: Q n trQ I
I I rtt mICQnt..inerCfJ ntгQ I
I --1 ~m l l mage II
Н ~ ГГ1 ~ прutВutroп
I Н НVnlAnc t"юг
I --1 HVnllink
II
н HtmllnputSubmit
I Н HtmlButton
I --1 Н tmI Ме1З
I I
н HtmllnputRaset
I Н НtmI FQПТ1
I --1 H tmrТi ll e
I i I
Н ~m llnputC~сkБQХ I Н H(mlSe-lect
I
Н Нtm llп put FПе
I Н Htmrтable
I
Н Htm ~n ~ idde n
I Н Нtmrfa bIeCel1
I
Н Himllnputlmage
I Н Htm rтabkoR ow
I
Html l npufТext
I Ч Html(ienericContro l нtm lHe<! d II
I
I нt m n n putPa ssword I I
)
" --------
Пока за нны е на р и сунке массы
-----------
и м еют следую ще е соо тветст в и е с
'"
В.М. С """,,,в Про,р а ммupoвtJNШ' 110 ASP. N ET
В,
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
еж
Doпе I n 1J"anet
ш
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Динамическая
таблица
Local in1J"anet
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
System.Web.UI.HtmlControls.Htmllnputlmage
System.Web.UI.HtmlControls.HtmrrextArea
System.Web.UI.HtmlControls.HtmllnputCheckBox
ServerChange System.Web.UI.HtmlControls.HtmllnputHidden
System.Web.UI.HtmlControls.HtmllnputRadioButton
System.Web.UI.HtmlControls.HtmllnputText
System.Web.UI.HtmlControls.HtmllnputPassword
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
ЕvепtsСопtrоl.аsрх
ш
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
<se lect id=''List1 '' runat="server" style=''width: 202 р х" multiple size="З"
оnsеrvегсhапgе=''Listl_SеrveгС haпgе''>
< iпрut id='Textboxl " runat="server" type=''text'' оnsеrvегсhапgе='ТехtЬохl_Sе J
< iпрut id="C hec kboxl " runat="server" type="checkbox" onserverchange='Textb
< iпрut id="Submitl" nшat="sеrvег" type="submit" value="submit"
onserverclick="Submit l ServerClick" 1>
usiпg System;
usiпg System.Data;
usiпg Sуstеm.Сопfigurаtiоп;
usiпg Sуstеm.СоlIесtiо пs;
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
using System.Web;
using Sуstеm.WеЬ.Sесшitу;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
}
}
EventsControl.aspx.cs
• Г;;:;=Запустите страни ц у на выполнение и получите примерн о
такой результат
"г' i
-
,
Web-элементы управления
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
'"
В.М С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
I Sушm Object I
I S~te m Web.UI, ContJol I
- - - - -- -
Пространство имен
-------- -
System.Web.UI.WebControls
- ,
I
~t<:'.1ntfQl
I
I I
Н 6цасп
I Н L i te Г1il I
I ваsе~ШВСun ОСQП1ГQ I
Н ctJo<;k6Qx
I Н РI~ еНQIO-е'
I I D;lt<JE\Quno:.:lC<>ntrol I
Lr Rэdi: >6u\toп I Н Сэ l$nd"г
I -1 AdRoWoI
I
Н H~perlink
I -1 'т' I -1 СQmрсsiteDэmВСUnclCoП1rоll
Н I mэge
I -1 VЭhdati опSu mmэ ry I Н Doe1ai~V i ew
I
-1 I m~ge6...tton I I 6-;J$еv", ]id;Ш>l
I Н FQIfТIV~w
I
--1 Image"-lap I IВ<llseCоmрз rеV.аlkjз lo г I Н Qrl dVlew
I
Н l.oI" ,
I Ч- C()mj);'lteVi! lid;'\kJt I Н LlstControl
I
Н Llnt:BullOn
I Н СU зt)m\lll l l~kJ.
I Н Ch~ k.ВC~Llst
I
Н F ane l
I Н RangeVa lldator
I Н DIOpDawnL Is1
I
Н т.".
I -1 Reguta rExprer;,sl() nValidaoor I Н LlslВo~
I
Н TableC e~
I --l RequlredFieldValidator I --1 RadloBullOnL ls1
I
Ч-Т3tjенеS(1е tCеl l l --1 Bulete(j,..Ist
I
Н ТэЬ\оеRow
I -i Н ierэ гс hiсэ lDэtэВОu ndC ()П1rol I
Н Text60x
I --1 Menu
I
Н TreeView I )
I
---------------- - - - - -- - -
'"
В.М. С """,,,в Про,р а ммupoвtJNШ' 110 ASP. N ET
ynравления
компьютере ЮIиента
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
методы
Управление стилем
pnlBorderStyle = BorderStyle.Dashed;
'"
.--------.
В.М. С""",,,в
I I
Про,раммupoвtJNШ' 110 ASP. N ET
I I
I I
I I
I I
.. _------_ ..
I I
Управление цветом
Для задания значений свойств цвета элеме н тов управления, таких как
BackColor , BorderColor , Fo r eColor , используется структура
System . Drawing . Colo r с п редопределенными цветами и ее
методы , или статические методы класса
System . Drawing . Colo r Translator . Для сокращенного
использован ия на стра ниц е такого арсенала н ужно импортировать в
usiпg System.Drawing;
или п рименять полное имя кnacca или структуры при обраще нии к их
компонентам .
usiпg System;
usiпg System. Web.UI. WebControls;
usiпg System.Drawing;
Листинг
PropertiesControll.aspx.cs
Управление цветом
• файле
: lM3;WebSite lrrrr т
[ Button2 '
Оопе Local iп1Тапеt
Управление шрифтами
llsiпg System;
llsiпg System. Web.UI.WebControls;
llsiпg System.Drawing;
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
// Настройка цвета
int alpha = 255;
int red = О, green = 255, blue:::: О;
Button2 .BackColor:= Color.FromArgb(alpha, red, grееп, blue);
// Исп ользуем ст р уктуру Sуs tеm.WеЬ.U I .WеЬСопtrоls.FопtUnk
// уста н овки отн осительного размера шрифга
Button2 .Fo nt.Size:::: FontUnit.Smaller;
// Настройка цвета
ВuttоnЗ . ВасkСоlог:::: СоloгТгаnsLз tог. FгоmНtm1(''#ООООFF');
ВuttоnЗ . FогеСоЮг:::: Co lorTranslator.FromНtm1(''white');
// Исп ользуем ст р уктуру Sуs tеm.WеЬ.U I .WеЬСопtrоls.FопtUnk
// уста н овки абсолютного размера шрифга в пунктах
ВuttоnЗ . Fо пt.Size:::: FontUnit.Point(16);
Листинг
РrореrtiеsСопtrоl1.аsрх.сs
Управление шрифтом
• файле
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Button2
Оопе Local iп1Т.:nеt
< Ьг 1>
< аsр:Вuttоп ID= "Button2 " runat= "server" Text="CTepeTb студента " I
</asp:Pane!>
</div>
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
</form>
<!body>
<lhtml>
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
<р 1>
<ш 1>
< р 1>
<h2>
Элеме н т ы управления, <br1>
генерирующие событие < Ьг 1>
C hanged
<1h2>
< р 1>
<asp:TextBox ID='TextBoxl" runat="server" AutoPostBack='True"
ОпТехtСhaпgеd="СtгlСhaпgеd ''> Привет BceM!!! </asp:TextBox>
< р 1>
<asp:CheckBox ID="CheckBoxl " runat="server" A utoPo stВac k ='True'
OnCheckedChanged="CtrlChanged" />
< р 1>
<asp:RadioButton ID=''RadioButtonl '' runat="server"
AutoP ostBack='True" Checked='True"
GroupName=''radioGroup'' OnCheckedChanged="CtrlChanged" 1>
<asp :RadioButton ID=''Rаd iоВuttоп2 '' runat="server"
AutoPostBack='True" GгоuрNаше=''rаdiоGгоuр''
OnCheckedChanged="CtrlChanged" 1>
</div>
</form>
<lbody>
</html>
СhесkеdСhапgеd.аsрх
using System;
using Systеш.D а tа;
using Systеm. С опfigша tiоп;
using System. Collections;
using System.Web ;
using System. Web.Security;
using Systеш. Web.UI;
using System. Web.UI.WebControls;
using System. Web. UI. WebControls. WebParts;
using System. Web. UI. HtmlContro ls;
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
СШlСОК событий
CheckBox1_ Changed
RаdlOВuttоп2 _ Сhапgеd
RаdiоВuttоп 1_Сh"пgеd
CheckBox1 Changed
Элементы управлеlПIЯ,
генерирующие событие
Changed
I Привет всем!!!
r. r
Оonе Local iп1Т.:nеt
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
С п исковые Web-элементы
Выпадающий спи(
заполненный колл
объектов
<asp : L i stlten
DropDownList <asp : DropDownList>
НТМLон
трансqюрмируется
дескри п тор <selE
атрибугом size=
ОКНО списка, запо.
коллекцией объект
<asp : L i stlten
НТМLоно
ListBox <asp :Li stBOx> трансqюрмируется
дескри п тор <selE
атрибугом size=
Х - количество ви )
элеме н тов
Его элементы в Н1
трансqюрмируютс
CheckBoxList <asp :C heckBoxList> флажки, выровнен
таблице с одним и
н есколькими стол{
То же , что и
<asp : CheckBo}
RadioBu t tonLis t <азр : RadioBu t tonLi s t> но элементы
трансqюрмируютс
радиокнопки
Статический
'"
в.м. С """,,,в Про,р а ммupoвtJNШ' 110 ASP. N ET
маркированный и.
нумерованный СПl
НТМLон
трансqюрмируется
DataSource ,
DataMember , Использую тся для отображения данны х
DataTextField ,
и з базы данных
DataValueF ie ld,
DataTextFormatString
,СО
В.М. С""",,,в
Llstltem Соllеctюn
[1e mbers:
:
Editor
i:СЩ;D~'В'• • • • • • • ~
=== Про,раммupoвtJNШ' 110 ASP.NET
.1J.RI
~
._ ","ИЯ2
ОК CCIГJo::el
usiпg System;
usiпg System.Data;
usiпg Sуstеm.Сопfigurаtiоп;
usiпg System.Collections;
usiпg System.Web;
usiпg System.Web.Security;
usiпg System.Web.UI;
usiпg Sуstеm.WеЬ.U I .WеЬСопtrоls;
usiпg Sуstеm.WеЬ.U I .WеЬСопtrоls.Wе ЬРаrts ;
usiпg System.Web.UI.HtmlControls;
{
ListВохl.ltеП15.Аdd("Опция" + i То5triпgО);
DгорDоwnList1.ltеms.Аdd("Опция" + i То5triпg());
С hесkВоxLis tl.1tеms.Аdd("Опция " + i То5 tгiпg()) ;
RаdioВuttопListl.1tеms.Аdd(''Опция'' + i То5triпg());
}
}
}
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
1 :~ ~::::: QОПЦИf1
31 Q ОПЦИf1 4
5
2
1
Этот элемент ynравления генерирует либо НТМL -список <и 1 > , либо
<01> . Набор элементов списка задается чере з свойство-коллекцию
1te ms . Им е ются и другие свойства , приведенные в таблице.
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
Выбрано свойство:
<asp:Labe! ID=''Labe!l '' ruпаt="sеrvег' '></аsр:LаЬе!>
< р />
< аsр:ВullеtеdList ID =''Вullеtеd Listl '' nшat="sеrvег"
BulletS tyle= "N шnЬегеd" DisрlaуМоdе=''LiпkВuttоп''
ОпСliсk= ' 'ВullеtеdListl Click''>
<asp :ListItem> N otSet</asp :ListItem>
<asp :ListItem> N umbered </asp:ListItem>
<asp :ListItem> Lower Alpha</asp :ListItem>
< asp :ListI tem> U р регAlp ha </asp :ListI tem>
<asp :ListItem> LowerRoman</asp :ListItem>
< asp :ListI tem> U р perRo man</asp :ListI tem>
<asp :ListItem> Disc </asp:Listltem>
< asp :ListI tem> С ircle </asp :Listl tem>
< asp :ListI tem> 5 quare</asp :Listl tem>
< asp :ListI tem> С ustomImage </asp :Listl tem>
</asp:BulletedList>
</div>
</form>
</body>
</html>
Задав ДЛЯ списка атрибуг Dis play Mode= " LinkButton ", мы т ем
самым ВЮJючили на ЮJиенте постинг ДЛЯ каждого пункта с пи ска .
,ее
П""'?'W"'~""'"" ASP.NET
1. NotSet
2. NшnЬегеd
З. LowerA1IJha
4. UpperA1pha
5. LowerRoтan
6. UIJIJerR&тan
7. Disc
- -
8. Circ1e
9. Square
10. Custoтlтage
ОДН ОЙ и з важных задач НТМL~ дескр ип тора < f or m> является сбор и
передача данных у сво и х элементов управления. Часто Web-страницы
запрашивают у п ользователя какую-либо информацию, за т ем сохра н яют
ее во вспомо гател ьной базе да нн ых. Всегда нужно пр оверять введен н ую
пользователем информацию на предмет СQЦержан ия ошибок или
злонамеренного кода , которые мо гуг вызвать сбой в р аботе саЙта .
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
да нных, а именно
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
регулярному выражению
Элемент RequiredFieldValidator
,СО
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
< Ьг />
<asp :TextBox ID='TextBox2 " гuпа t="sеrvег">< /аsр :TextBox>
<asp:ReqlliredFieklValidato r ID='Val2" nmat="server"
Co ntrofГo Valid a te='TextВox2" Width= ''2 1 7рх''
Техt= "З апол ни те п оле TextBox2" />
Есл и мы хотим вы дать сообще ния о всех ошибка х сраз у, то это делается
ч е рез элемент ValidationSumma r y , а предупреждение от текущего
Controrro Validate= 'TextBoxl " Техt="З аполните поле TextВoxl " Dis!=
!Оynашic!
< Ьг />
Имя:
<asp :TextBox ID='TextBox2 " runat="server''> </asp :TextBox>
<asp:ReqlliredFiek:lValidator ID='Val2" nшat= "sе rvег "
ControrroValidate='TextBox2" Техt="З аполните поле TextВox2" />
!Static!
< Ьг />
Отчество:
<asp :TextBox ID=' ТехtВохЗ " runat="server''> </asp :TextBox>
<asp:ReqlliredFieklValidator ID ='Vа lЗ" nшat="sе rvег"
Controrro Vаlidаtе= ' ТеxtВохЗ " Техt="З аполните поле ТехtВохЗ " Dis!=
!None!
< Ь г />
<aspButton ID="Buttonl " runat="server" Теxt='Заре гистрироваться" />
</form>
</body>
</html>
1~i)~Dтe~======:::::'--------ГГГ~LОС3iltrа~t
Если исследовать поведение страницы, то можно сделать несколько
важных выводов:
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
m
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
--~.;......;...
Internet Options ? Х
о о
Trusted sites Restricted
sites
Local intranet
This соnе conts.ins sll Web sites thst ше
Sitез ..
оп your org ~n iz~tion's intr~net.
Custom
Custom sеttingз.
- То chsnge the зеttingз с dick OJstom Level ~
- То use the recommended settings, click DefOO!l Level
ОК OTMeH~ Применить
Securitv Settings
Settings:
о Disable
o Enable
О Prompt
~ Userdata pers isterce
О DisablB
, o ЕnaЫв
S[фt~
~ A[ti\le s[ript~
О Disable
o
u
Enable
О Prompt
~ Allow paste operations \lia scфt
О Disable
o ЕnaЫе
О Promot
•
, "езе, cu,tom settlngs
"ese' 10 I M8dum-lоw _ R888
------"1 1
СЗхвl
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
<script nmat="server''>
protected void ЬtпRеgistег_Сlk:k(оЬjесt serкler, EventArgs е)
(
ЩР age.ls Valid)
{
11 Все введено, можно реrnстрировать
Labell.Text = "Вы зареrnст рир ованы";
Label1.ForeColor = Systеm.Dгаwiпg.со!ог.whitе;
Label1.BackColor = Systеm.Dгаwiпg.Со lor. Gгееп;
}
}
</script>
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
Листинг Пример ИСПОЛЬ90ваНИR свойства Page.IsValid в файле
IsValidTest.aspx
<script nшat="sеrvег''>
protected void Buttonl_Ctick(object sender, EventArgs е)
(
if ('Page.lsValid)
(
11 С р абатыв ает при ОТЮlюченной подцержке JavaScript
11 в броузере. Инач е JavaScript на юш е н те
11 н е разрешает постинг. пока есть неправильный выбор
Labell .Text = "Э та опция запрещена!";
)
e~e
(
Label1 .Text = "Разр еше нный выбор!";
)
}
</script>
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
в последн ем при мере мы д олжны понима ть, что при ВЮJюч е нной н а
ЮJи е нте поддержке JavaScript nр едУЛ реж.цение об ошибке никогда не
будет выдано кодом страницы , п отому что п остинг броузером будет
заб локирован , п ока польз овател ь не сдел ает пр авильный выбор.
Обратите внимание н а н астройки в ал uдаmорй. О н не сможет выдать
те кстово е nр едynреж.це ние пользователю , по тому что мы сделали его
Элемент CompareValidator
Свойство Описание
В.М. С """,,,в Про,р а ммupoвtJNШ' 110 ASP. N ET
принимать з начения :
установленной константе
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Взаимоисключающие свойств а,
Control ToCompa re,
определяющи е либо эталонное поле
Va lue ToCompare
сравнения, л и бо ко н стан ту
<script nmat="server''>
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
runat="selVer" Теxt="Отправить
< аsр:Вuttоп ID=''Вuttопl '' заказ"
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Элемент RangeValidator
<script nmat="server''>
</head >
<body>
< fопn id="forml " runat="server''>
<div>
<h2 >
Товар ' 'Ро га и копы та "< Ih2 >
Имеется в наличии:
<aspTextBox ID='TextBoxl " runat="server" EnabIed=''False '' Text= "25 '
Сколько хоти те заказать:
<aspTextBox ID='TextBox2 " runat="server" I><br 1>
.1J~
..•
T...-rpl ..,... Гf! ;:;:
~ ~ ~
АЧ' r.ET \', 00 ASP J-ET W3!J ж-sma l Vloo
Sib SOfYEO Si'" stoc"" K~
•
l/ШIiIIIII
D
м.",..- Р"9"
[!j]
_ с_
ccrn-o l
00
КТf.1.. ""9"
!i
Web S• ..,~e
~
С ",,,
~
stj l< SCe" t
CiiJ
C~,
.
Fi:"
ij
SQ.- о..:..ь=
1m
Dазset -~, ~
5Ite М"!)
1J]r"
с
M:N eVIOO
~
\'В5C r "" F(e
lf.jJ
,-,
~
J5CfjX ""
I-I.rd e.. ' ..m
~W I Def<OJ lt<bpx
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
..n DeЬ uщ iпg Яlоu (J ье drsabled in Ihe W8b,crnf1g Ш:о before deplщilg the
W8b site to а prod..ctial ооугrnmепt,
< сопfigшаtiоп>
<system.web >
<trace enabled= ''true''/>
</system. web>
</соnfigшаtiоп>
Тгасе Iпfопrntiоп
Ргот
Category Message Ргоm First(s)
Last(s)
aspx.page Beg i n Pr eln i t
aspx.page End Prelni t 0,01754301175149360,017543
aspx.page Beg i n In i t 0,020 14781208226190,002605
aspx.page End Ini t 0,03765702065485980,017509
aspx.page Beg i n I nitComplete 0,0381149000780825 0,000458
aspx.page End In i t Complete 0,04003078603565540,001916
aspx.page Beg i n PreLoad 0,04203327517882860,002002
aspx.page End PreLoad 0,04339266582764010,001359
aspx.page Beg i n Load 0,0438189 76992886 0,000426
aspx.page End Load 0,04991751744984350,006099
aspx.page Beg i n LoadComplete 0,0503580762359462 0,000441
,ее
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
</div>
</fonn>
</body>
<lhtml>
using System;
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Р'''''-'''-
Р ... _""
Р . .. _",,,• ..,
Р. .. _,-
POI"_"""" _
Стра ниц у без отл а дки мож но запустить напрямую , вызвав броузер
че р ез контекстное меню разметочной части стра ницы командой VIew in
Browser, или выполнив командУ оболочки DebuglStart Without Debugging
(выполнить без ВЮlючения отл а дки). В любом случае с р еда исполнения
AS P.NET п ерекомпил и рует страницу (если был и по след ни е изменения
в исходном коде по сравнению с DLL) и выполнит ее , направив
сгенерированный HTML-КОd броузеру.
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
usiпg System;
usiпg System.Data;
usiпg Systеm. Со пfigша tiоп;
usiпg System. Collections;
usiпg System. Web;
usiпg System.Web .Security;
usiпg System. Web.UI;
usiпg System. Web. UI. WebControls;
usiпg System.Web.UI.WebControls. WebParts;
usiпg System. Web.UI.HtmlControls;
fо nnl .Сопtrоls.Аdd(lbll );
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
10nnl.Сопtrоls.Аdd(ВR);
10 nnl. С о пtrо Is.Add(1b 12);
10nnl.Сопtrоls.Аdd(ВR);
fo пnl. С о пtrо Is.Add( textВo х);
10nnl.Сопtrоls.Аdd(ВR);
10 nnl. С о пtrо Is.Add(btn);
textВox.FocusO;
if (! this . I sPostВack)
(
11 Настройки при первом запросе,
11 далее сохраняемые в ViewState
Ibl1.Text:= ''Label'';
Ibl1.тооrпр = "Э то текстовая меткаl";
Ib12.Text:= ''Labe2'';
Ib12.тооrпр = "Э то текстовая метка2";
textВox.Style.Value := "color: red; foпt-stуlе: italic";
tехtВох.тооrпр = 'Это текстовое поле";
Ьtп.Техt = 'К нопка ";
Ьtп.ТооШр:= 'Э то кнопка Submit";
)
}
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
ObJect Browser
Browse: .NEТ Framework ... ,.. I
System.WebUITempo.teConb"d •
EJ ..·'I$ System.WebUITempo.teConb"d
Base Types
Derived Types
",'1$ Page
8 '1$ UserCoob"ol
уп р авления
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
1'100 Fe< m
D
Мао"" Р"'9" •
l1li
1!1
н тм.. Р"'9" 1'100
~
_Y O: ~
~
C~,
~
sty k> ShGot
с <ы
~ iЭ
"оо
~
хм.. Fi" хи..
tm Schema
li1
Text Fi"
!IJI
Pescиce Fi "
IJ
SQ.. Database
"W1o:atL " Crnfg.xati",
tm -~, ~ шf· ~ ~ ~
DataSet
~ff
Si l9~ ~ i "Web
Fe<m
VВScr"t Fi "
"-' JScr " t Fi"
Посмотрите , что создал мастер. Файл .ascx содерж ит только одну строку
директивы
страницу.
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
и ли таким
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
'!i ТССТ ~лсмеltТа user control Мicтosofl Intcrnct [~plorcr ::::::::=- ____~~-ID I ~
----
•
Тестовая страница User Control
ВР!;'J\lЯ о.:U~Д<lНИЯ: МЩП 20071 ~ В(!;' IIp<lB<I j<lЩИЩ!;'НЫ
управления
Обработка событий
<asp:LinkButton ID=''lnkTune'' runat="server" ОпС liс k =' 'lnkТпnе_С liс k '' 1>
т,
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
17:32:39
модификатор.....Доступа ти п имя_свойства
(
get
(
11 код аксессо р а чт е ния поля
",
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
гешm поле;
}
set
{
11 код акс есс ор а записи поля
поле := value;
}
}
П усть, н а при мер, пер еме нной x F i eld целого типа тр ебуетс я
обеспечить ко нтролир ую щий доступ с помощью свойства с и мен ем х,
которому в пр о грамме можно при св аивать тол ько н еотр и ц ат ель ны е
class М УС Iass
{
public MyClassO
{
xField = О;
}
Щуа!ие >= О)
xField = value;
}
}
}
Добавление свойств
",
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
22:06:57
Здесь создаются два экзем п ляра элеме нта ynравления Ti meD i splay,
первый из которых отображает дату в ф:Jрмате п о умолчанию , а друго й -
в задан ном ф:Jрмате.
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
",
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
23:25:40
23:25:40
I iп1Тю еt ~
AJ
",
C:\ ... \WebSite4\
~ Build Web ~te
PubIish Web ~te
~ CUt
Сору
Paste
§I Property Pages
",
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
в .1"=-- - - - - - - - - '1
Add Existing Item".
R e~esh F~der
Cut
Сору
Paste
'Х Delete
Rеn.зmе
,,,
В.М. СН"",,,В Про,раммupoвtJNШ' NQ ASP.NET
.1J~
ri! о:::
•
T""l""»>
~ !;]J ..;
[!jJ ~
IШII Тех! f ile D<Ot1oS,t
using System;
using System. Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebContro ls;
using System.Web.UI.WebContro ls.WebParts;
using System.Web.UI.HtmJControls;
/// <summary>
/// Вспомогательный масс LinkTableItem
/// </summary>
public class LinkTabIeI tem
{
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
// Конструктор по умолчанию
риыic LinkTable Item()
{
// Пустой ко нстр уктор по умолчан ию обязателен
// поскольку есть общий конструктор
}
// Общий конструктор
public LinkTabIe Item(string text, string ur!)
{
// Внугренним полям присваив аются з начения ,
// переданные и з родительского объекта
this.text == text;
this.ur! == ur!;
}
lliJ
~
с _,
~C
Vlю Fa m
ДPP l t,~",
D
-
§ -
М38:В- Р ",?,
C001:g..<"'i.. ,
l1li
~
_о .
~
НТf<\. Р ",?,
liJj
Xf<\. Schetm
WЮ
~
~
Sff, t e
Те х ' f ie
~
("'8'
~
Rеюcrcе г1е SQ.-
~
,-
Щle 5Сев!
[j
С<озь.> ",
11!J ~ ~ 111f' i ~ ~
D,bSot -,
~.
Siw М"I' ~,A:blQ щоо
~т
l,'В3cr ipl: FIQ
00
liI=
~
gi" ,001 Rt ~ f!.J
Iм ~SP , I.ET _yвr (00.-0 1crе,Зd us r __ 1tJe ,~ш l ms от'"
~~ "I'-;;~"
'''·'''-------------------C,
<tr>
<td>
<asp:Labe! ID= ' 'lbrПtle'' runat="selVer"
F orеСо!ог= ''#С ООООО'' F ont- Bok:l=''true''
F ont- N ames= 'Vemada" F о п!: - 5 ize=''Small''>
< !--Здесь будет за головок-- >
</asp:Labe!>
</td>
</tr>
<tr>
<td>
<asp:DataList ID="listCo ntent" runat="server">
<ltemTemplate>
<img width=''25'' hеight="lЗ" src=''Yes.gif' a!t="MapKep''>
< аsр:НурегL ink I D=''НурегLiпk1 " runat="server"
NavigateUr!='<%# Dа tаВindег.ЕvаI(Сопtаine г. Dаta l tещ 'Ur!'') (
Text=' <%# DаtaВindег.ЕvаI(Со пtаinег.Dа tа l tещ 'Text'') %>' 1>
< lItеmТеmр1з tе >
</asp:DataList>
</td>
</tr>
</tab)e>
usiпg System;
usiпg System.Data;
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
11 Обновляем сетку
listСопtепt.DаtaSошсе = items;
listCo ntent.DataBindO;
)
}
}
элемента управления
ш
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
l,r[inkTabIeTest,aspx j
r,;.;r Databound
[;.;i'" D шаЬ оun d
~ Databound
[;.;i'" D шаЬ о un d
~ Databound
<html xm1пs="httр:llwww.wЗ.огgl1999/xhtml">
<head nmat="server">
< title >Тестовая страница сложного элеме н та ynравления </tit1e>
</head>
<body>
< fопn id="fопnl" ruпаt="sеrvег' '>
<div>
< uсl:LiпkТаЫе ID='1.iпkТаblеl" runat="server" 1>
</div>
</foпn>
<!body>
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
</html>
using System;
using System.Data;
using Systеm. Со пfigша tiоп;
using System. Collections;
using System.Web;
using System. Web.Security;
using System. Web.UI;
using System. Web.UI.WebControls;
using System. Web. UI. WebControls. WebParts;
using System. Web. UI. HtmlControls;
ш
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
ffi:j Favorites
http:/~ocalhost lО б9/Wе Ь~tе4iln kТаt>eТеst.аs р х ... r6> Go
Добавление событий
командУ Paste
• ~ ереименуйте созданные копи и в имена оригиналов , но с
добавле нием Ext (extension расширенный), а именно:
LinkTableExt.ascx, LinkTableExtTest. aspx (файлы подцержки
LinkTableExt.ascx.cs и LinkTableExtTest.aspx.cs оболочка
п ереименует сама)
• r;;,;:rСделайте страницу LinkTabIeExtTest.aspx стартовой, вып олн ив
на ее узле в представлении пан ели So lution Ехрюгег командУ Set А5
Start Page кон текстно го меню
• r;;:;noAnpaBbTe в файле LinkTableExtTest.aspx демарацию
@Register, чтобы новая тестовая страница применяла
п ользовательский элеме н т управления из друго го файла
Browse: Му Solutюп
<Search> Г 9 MdAl:IYit<JtesToRender(System .
II----,---=~=---,---:-.,...:;::;...-i I (. . ~o MdParsedSubObject(obj€ct)
щ- . 4t$: GridViewUpdateEven.... ;
: · о НурегLlПkО
ffi··~ HiddenField '
: "о LoadVieWState(obj€ct)
,
4:
ci:J ... Hlerarc:hio:alDataBouг .
i,··-" ORenderContents(System,Web.U
1i>. '11 Hots~t
C~ :!5' ImageUrl
"''11 ....
ц оt:'jXJЬ:оПесооп .(~ NavigateUгl
';''11
~,'. 4$ HyperLinkColumn i···· .- Target
(. . !5' Text
ffi··~ HyperLinkConuolBuil
m
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Browse: му SoIubOll
Листинг
LinkTableExt.ascx
Смена типа элемента
• шаблоне файла
ш
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
usiпg System;
usiпg System.Data;
usiпg Systеm. Со пfigша tiоп;
usiпg System. Collections;
usiпg System. Web;
usiпg System. Web.Security;
usiпg System.Web.UI;
usiпg System. Web.UI. WebControls;
usiпg System.Web.UI.WebControls.WebParts;
usiпg System. Web.UI.HtmlControls;
11 Обновляем сетку
listСопtе пt.DаtaSошсе = кешs;
listCo ntent.DataBindO;
)
}
}
Листинг
LinkTableExt.ascx.cs
Добавление нового хласса - упаховхи
• файл
ш
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
управления.
IistContent System.Web.UIwet·
~:' l1]lJ I [;] [2J I ~
CancelCommand
DаtaВlгЮlr>;J
DeleteCommand
Disposed
ЕditCоmmaгЮ
Inlt
ItemCommand
ItemJeated
-
• IJ$Добавьте в масс Li n k Table и созданны й обработчик
стан дартн ого собы тия следующий код
us iпg System;
us iпg System.Data;
us iпg Systеm.С опfigша tiоп;
us iпg System.Collections;
us iпg System. Web;
us iпg System. Web.Security;
us iпg System. Web.UI;
us iпg System.Web. UI. WebCo ntrols;
us iпg System. Web. UI. WebCo ntrols.WebParts;
us iпg System.Web. UI. HtmlControls;
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
11 Обновляем сетку
listСопtе пt.DаtaSошсе = кешs ;
listContent.DataBindO;
)
}
ш
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
11 Генерируем событие
LinkClicked(this, aгgs);
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
(
protected void paQe_ LOadl object sende r, !:',entA'QS е)
i t:=~ [l ] - n ~'" ,inkT~bj"T t:"" I "C=M Jl'2 ~ ~ ИОI~О 1!" \ " ДIIЫIOГ -С",р~ис\"" ,
' http ' ((WWW d i e 1Qg ,~ п к ... n ... t ' );
i tens [2) nЕ'" LinkTdblelte,, ('CCWJ ~a lI'З ~ 9а'ЫЧ~8 J ачаsсriрt',
'j"y,ycr;pt ' voi iJ !О )" );
L in kТ~bl"l.It ~,, ~ - i t ~ ,.~ ;
об р аботчи к та к
using System;
using System.Data;
using Systеm. Со пfigша tiоп;
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
1. Donе iпtr.леt
ш
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
дочерний элемент.
Первый способ
'"
в м С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
Web - страница
i
BackColor I >~
МyContro l l
I BackColor I
LaЬell
using System;
using System.Data;
using Systеm. Со пfigша tiоп;
using System. Collections;
using System. Web;
using System.Web .Security;
using System. Web.UI;
using System. Web.UI.WebControls;
using System.Web.UI.WebControls. WebParts;
using System. Web.UI.HtmlControls;
ш
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
MyControl l
• ~ о п робуйте выделить элемент уп р авления и убедитесь, что он
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
<%@ Register S гс =''МуСо пtго L аsсх'' ТаgNаme= "МуСопtго l " TagPrefix="llcl "
ш
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
<br 1>
<asp :RadioButtonList ID='RadioButtonList1 " runat= "server"
RереаtDirесtюп=''Ноriwпtаl''
OnSelectedlndexChanged='RadioButtonListl_SelectedlndexChanged '~
<asp :Listltem Value='Red"> Кра с ный </asp:ListItem>
< asp :Listl tem Value= "Gree п"> 3 ел е н ы й </as р :Listl tem>
<asp :Listltem Vа luе =''В luе ' '> С иний </asp:Listltem>
</asp:RadioButtonList></div>
<br 1>
< inр и! id="Submitl" type="submit" value="submit" 1>
</form>
</body>
</html>
его юш е нту.
• ~3аполните обработчик
Rad i o Butt on Li st1 Se1ected I nde x Changed( )
страницы в файле MyControrrest.aspx.cs следующим кодом
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebContro ls;
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
switch (index)
{
case О:
МуСопtгоl1.FогеСоlог = System.Drawing.Color.White;
МуСопtгоl1.ВасkСоlor = System. Drawing.Co lor.Red;
break;
case 1:
МуСопtгоl1.FогеСоlог = System.Drawing.Color.Aqua;
МуСопtгоl1.ВасkСоlor = Sys tеm. Dгаwing. Со lor. Gгее п;
break;
case 2:
МуСопtгоl1.FогеСоlог = Systеm.Dгаwing.Соlог.УеПоw;
МуСопtгоl1.ВасkСоlor = System. Drawing.Co lor.Blue;
break;
}
if(index!= -1)
М уСо пtго l1 .Теxt = RadioButtonList1.1tems[index]. Value;
}
}
Второй способ
using System;
using System.Data;
using Sуstеm.Сопfigurаtiоп;
using Sуstеm.Соllесtiо пs;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using Sуstеm.WеЬ.U I .WеЬСопtrоls;
using System.Web.UI.WebControls.WebParts;
,,,
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
using System.Web.UI.HtmlControls;
InnerLabe l l
using System;
using System.Data;
using Sуstеm.Сопfigurаtiоп;
using System.Collectio ns;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using Sуstеm.WеЬ.U I .WеЬСопtrо ls;
using Sуstеm.WеЬ.U I .WеЬСопtrо ls.Wе ЬРаrts ;
using System.Web.UI.HtmlControls;
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
if(iпdех!= -1)
М уСо пtго l1 . lnnегL а Ь е l1 . Text = RadioButtonList1.Items[index]. V
}
}
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
I submi t
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
пользовательского элемента
.!! Cut
lt1I Сору
if!, Paste
Paste Alteгnate
'х D€lete
V~Code
I I
1!1 View Rl Browseг
Foгmat selec:tion
Foгma1jjng аnd Valid.aoon ...
using System;
using System.Data;
using Systеm. Со пfigша tiоп;
using System. Collections;
using System.Web ;
using System. Web.Security;
using System. Web.UI;
using System. Web.UI.WebControls;
using System. Web. UI. WebControls. WebParts;
using System. Web. UI. HtmlContro ls;
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
if(index ,=
- 1)
М yControll. InnerLabel1 .Text := RadioButtonListl. Items[ind ex]. Value;
}
}
пользовательсхого элемента
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
С настройкой
Items[5] внугр е нних MyCon t rolTest . ascx
компонентов
Будем с чи тать, что один из трех ста н дар тны х элеме нт ов управления
кон тейнера, а именно с пи сок, мы заполнили деюыративно. Два других
элеме нта кон тейнера будем за полнять прorра мм но.
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
</asp:DropDownList><br 1>
< Ьг 1>
<asp:P laceHo!der ID=''P IaceHo!der2 " runat= "server''></asp РвсеНо!
< Ьг 1>
<asp :Labe! ID=''Label2 '' runat= "server" Text=''Labe!''></asp:Labe!><!
< Ьг 1>
<asp:Pane! ID=' 'РапеLЗ'' runat="server" BackCo!or="Gamsboro " Border:
ЕnaЬ!е ViewS tate= ''F а Ise" Н о rizo ntalAlign= "С enter''>
<asp:DropDownList ID =''Dгор DоwnListЗ'' runat="server" A utoPostB
<asp :ListItem Value=''N o ne">(N опе )</asp:ListItem>
<asp :ListItem Value='HeaderTest.ascx''> Верхний колон титул </a
<asp :ListItem Value='TnneDisp layTest. ascx''> Кнопка ' время- дат,
<asp :ListItem Value=''LinkTab!eTest.ascx''>C писок гиперссылок
< asp :ListItem Value= ''LinkTab!e ExtTest.ascx"> Контроли р уем ы й
<asp:ListItem Value='MyControrrest.ascx''> C настр ойко й внугр
</asp:Drop DownList><br 1>
< Ьг 1>
<asp :PlaceHo!der ID=''P IaсеНо!dегЗ " runat= "server''></asp РвсеНо!
< Ьг 1>
<asp :Labe! ID =''LаЬеlЗ '' runat= "server" Text=''Labe!''></asp:Labe!><!
< Ьг 1>
</div>
</form>
<!body>
<lhtml>
DупаmiсUsеrСоntrоls.аsрх
I (NOne) 3
I (NOne) 3
I (None)
31
- - ..:J
Lосзl in1J" anet
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
usiпg System;
usiпg System.Data;
usiпg Systеm. С опfigша tiоп;
usiпg System. Collections;
usiпg System. Web;
usiпg System. Web.Security;
usiпg System. Web.UI;
usiпg System. Web. UI. WebControls;
usiпg System. Web. UI. WebControls. WebParts;
usiпg System. Web. UI. HtmlControls;
11 Вспомогательная функция
private void MyLoadControls(Control сопtaшегРапеl)
(
11 Объявляем вспомогательные ссылки на ин терфе йсны е
11 элем ен ты текуще го контейнера
DropDownList list = null;
PlaceHok:ler ph = null;
Labellbl = null;
о TuneDisplayTest.ascx
о LiпkТаЫеТеst. аsсх
о Liпkтаы Ехtтеst.аsсхx
о M yC ontro IГe st. ascx
• ~Откройте новые файлы в дескрипторном режиме и замените
директиву @Page н а @Control , все остал ьны е атрибугы
директивы @Page оставьте пр еж ни м и . Теперь это будуг не
страницы, а польз о в ател ьские э леме нты управления. Директиву
@Reg i ste r с ее атрибугами остав ьте в покое
• ~дали ть и з кода все дескрипторы <html> , <body> ,
< f o r m> , <head> и за крыв аю щие их дескрипторы.
• г;.:.='Для н ов ых файлов >I< .ascx откройте файлы скрытого кода
>1< .ascx.cs и замените в объявлении масса и м я наследую щего
масса с" Sys t em . Web . UI . Page " на "
Sys t em . Web . UI . Use r Cont r ol " Остальной код массов
оста нется пр еж ни м.
19:02:44
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
.1J ~
T...-rpl ..,... Гf! ;:;:
~ ~ ~ ~
АЧ' r.ET \', 00 ASP J-ET W3!J ж-sma l Vleb ЕrrjЖ)l Web
Sib SOfYEO Si'" stoc"" K~ Sib
I v ~"'" CI
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
/ MultiViewControl,aspx l ,., х
,.- MultiViewl
, ~
i" Viewl
View2
-
.- View3
,
Visual Studio 2005 во время проектирования показывает все
представления View в раскрытом виде , но на этапе вы п ол н ени я на
Вариант 1
<body>
< fопn kl="fопnl" runat="server''>
<div>
<asp:DropDownList ID= ''DropDownList1 '' runat="server"
AutoPostBack='True"
О пS е lected IndexC hапgеd = ''Drop DownListl_S е lected IпdехС hanged I
</asp:DropDownList><br 1>
<aspMuluView ID='MuhMewl " nmat="server" ActiveViewIndex="O">
<asp:View ID::::''Viewl '' runat= "server''>
< Ы > Мое qюто < lhl >
<asp:Image ID='1magel " runat= "server" lmagеUгl= "~lМуРhоtо.jр:
</asp:View>
usiпg System;
usiпg System.Data;
usiпg Systеm.Сопfigшаtiоп;
usiпg System. Web;
usiпg System. Web.Security;
usiпg System.Web.UI;
usiпg System. Web.UI.WebControls;
usiпg System.Web.UI.WebControls.WebParts;
usiпg System. Web.UI.HtmlControls;
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
представлениями
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Мое фото
Local in-o-.:net
Вариа н т 2
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
Мы, также , назначили для списка Аи toPos tBack= " True ", чтобы он
индивидуально осуществлял обратн ую отсылку Ну; а если на странице
будет мно го интерфейсных элементов с возможностью постинга ,
которые долже н БУдет нас трои ть пользователь. В этом случае будет
расточительно, что каждый элемент интерфейса при настр ойке
индивидуально посылает страницу на сервер для обновления. Лучше
предусмотреть отдельную кнопку; которая отдаст команду браузеру на
обратную отсылку после настройки всех интерфейсных элементов .
Выполним эти модификации на новой странице.
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
using System;
using System.Data;
using Systеm. Со пfigшаtiоп;
using System.Web ;
using System. Web.Security;
using System. Web.UI;
using System. Web.UI. WebControls;
using System. Web. UI. WebControls.WebParts;
using System. Web. UI. HtmlControls;
m
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
• ~ыполните страницу
m
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Вrowse: AI Components •
.~ CommandAгgument
; .~ СоттandNате
i""b Base Types I.. ·~ PostвackUrl
~"1b Derived Types i-~ Text
riJ···4$ Вutton I.. ·~ ValidatJonGroup
$. .4$ ImageВutton ,_о , Cl,ck
r4J ...4$ LinkВutton
!.... '1 соттаnd
createCoo1yo ~c:fec1j oo О
~ GetActiveVlew O
.~ МJ I1jV~W O
ActiVeVieW!гdex
Enatk1Пеm h;)
V..ews
{J Nextv~wCommard\Jame
~ FТeVio..lsVi€wComma l"d Name
OQO SWitchViewByIOComm zrd.j ame
{J SW itchViewBy Irde xComm cп:f.Ja me
' AcbYeY~
Пере:
ш
В.М. С """,,,в Про,р а ммupoвtJNШ' 110 ASP. N ET
слею
пред(
Co ml1
КНО П I
Пере:
пред]
пред(
Co ml1
КНО П I
Пере:
пред(
з н аче
и д ен '
свой(
Co ml1
КНО П I
упра l
Пере:
пред(
о п ре/
ин д еl
свой(
Co ml1
КНО П I
упра l
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
IO b t nNe xt O
Views[O ] Te x t Ne x t >
Co mmandNameNe x tV i ew
IO b t nPrev l
Te x t < Pre v
Co mmandNameP rev V i ew
Views[l ]
IO b t nNe xtl
Te x t Ne x t >
Co mmandNameNe x tV i ew
IO b t nPrev2
Views[2 ] Te x t < Pre v
Co mmandNameP rev V i ew
using System;
using System.Data;
using Systеm. Со пfigша tiоп;
using System.Web ;
using System. Web.Security;
using System. Web.UI;
using System. Web.UI.WebControls;
using System. Web. UI. WebControls. WebParts;
using System. Web. UI. HtmlControls;
<body>
< fопn kl="fопnl" runat="server''>
<div>
<asp:DropDownList ID=''DropDownList1'' runat="server''>
<asp :Listltem> Моя фотография < /аsр:Listltеm>
< аsр:Listltеm>Мои стихи </asp:Listltem>
<asp :Listltem> Встроенный календарь < /аsр:ListItеm>
</asp:DropDownList>
<Ы >
Мои стихи<lhl>
<р>
MultiViewContro12.aspx
Мои стихи
у Лукоморья дуб зеленый
Златая цепь на дубе том
И днем и ночью кот ученый
Все ХОДИТ ПО цепи крутом
Loca in1J"anet
• Ст и л и и шаблоны
/ WizardControl,a5px* ~ J
ЕЕ го'
SteD
Steo 2
INext I
Дескри п торное п редставление за готовЮ1 БУдет таЮ1м
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
WiZ8rdControl.8SPX*
,.ЕН . Wizard Ta5k5
ilstep 1 Auto Foгmat ...
IIStep 2 Step IStep 1 ElI
!I~~~~~. ~_ .~.~~N~e~xt~l~ AddjRemove W~ardSteps ...
Convert to StartNalkJationTem~te
Convert to StepNalkJationTem~te
Convert to F,nshNa"gatiooTerrplate
Convert to S,deBarTem~te
Ecit т em~tes
'"
в.м. С""",,,в
~
о
1 Яер 2
~ AIowRеtllЛ
EnaЫеThе пg
T,~
Тс",
EnaЫeVIe'f)'State T, ~
ЯерТуре Auto
Title Step 1
dd'---_.J-I _-,ес:,,,mo:::.,:.:,,---,
_---"A::
еж Са гсel
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
<lhead>
<body>
< fо пn id="form1 " runat= "server''>
<div>
<asp:Wizard ID=''Wizard1 '' runat="server" Васk С оlог= "# ЕFF З FВ"
BorderColor= ''#B5C7DE''
BorderWidth="1px" Width="100%" ActiveStep lnd ex=''O''
StartN еxtВ uttопТеxt="Далее >"
StерNехtВuttопТехt="Далее >" StepPreviousButtonText="< Назад"
FinishCompleteButtonText='ToTOBO " FinishPreviousButtonText="< Н.
Н еаdегТехt='Жи з н е нно важная ан кета!">
<WizardSteps >
<asp:WizardStep ID=''WizardS tep1 '' nшat= "sе rvег " Тitle ="Д рузья "
< hЗ >
Какой пр ез и де н т самый лучший? <lhЗ>
<asp:DropDownList ID=''DropDownList1'' runat="server">
<asp :Listltem> Наш П угин </asp :Listltem>
<asp :Listltem> Их Клинтон </asp:Listltem>
<asp:Listltem> Похожи й на Чингиз -Хана </а s р :ListItеm>
<asp :Listltem> Вы сам и </asp:Listltem>
<asp :Listltem> Ваша соседка </аsр:Listltеm>
</asp:DropDownList>
</asp:Wizard Step >
<asp:WizardStep ID=''WizardStep2'' nшat= "sе rvег" Тitle =' Туризм '
<h2 >
Где Вы были с 19 по 21 августа 1991 года?<lh2 >
<asp :RadioButtonList ID='RadioButtonList1 " runat= "server''>
<asp:Listltem> На Красной п ло щади </а sр:Listltе m>
<asp:Listltem> На Луне </аsр:Listltеm>
<asp:Listltem> В ч ужом огороде </аsр:L istltеm>
<asp :Listltem> У тетеньки </asp:Listl tem>
<asp:Listltem>B ayre</asp:Listltem>
</asp:RadioButtonList>
</asp:WizardStep >
<asp:WizardStep ID =''WizaгdS tе р З'' nшat= "sе rvег " Тitle =' 'ВстреЧI
< hЗ >
Кайтесь! Место встречи изменить нельзя! < IhЗ >
Ваш ИНН :
<asp:TextBox ID='TextBox1 " runat= "server" 1>
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP. N ET
</asp:WizardStep >
<asp:WizardStep ID='WizardStep4" nmat="server" Тitle="Досуг">
<h2 >
Мера ПООI.l.lpения < lh2 >
Ус и ленная диета + кrlИзьма ззз перцем!
</asp:Wizard Step >
<lWizardS teps>
<HeaderStyle ВасkСоloг=''Вluе'' Fопt-Воk:l='Тruе" Fопt-Size="Х-L~
</asp:Wizard>
</div>
</form>
<!body>
</html>
Листинг Дес~рипторное представление страницы
Несколько замечаний:
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Т уризм
r На Краснои IШощади
Встречи r На Луне
l.I2.m r В чужом огороде
r. у тетеньЮI
r B ауте
I < Назад Далее>
времени выполн е ния. Мы уже говорили , что для раз р аботчика задача
управления объ е ктами страницы во время выполнения сводится к
с озданию и программированию обработчиков событий , на которые
MOryг реаrnровать эти объ е кты. Ниже перечислены события , на которы е
может реагировать э кземпляр класса Wi z a r d .
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
.. ., Carк:elButtOnCliCk
.. ., FinisГВuttOllClick
..'1 NextвuttonO:: k
.. " Ргеviru,вuttоnCick
..'1 SideBarButtOnClick
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
'"
В.М. СН"""'f~'•~~~~~~:~~~~=:~~~~~~П~"'~'~'"~~~"~-~"~",~"~"~"'~'~.N~П
/ Wizif"dCmtтd ,aspx,cs* WizaгdContгol.aspx* т Х
Встречи lri~($~~~
~ Усиленная днета + клизьма ззз перцем!
using System;
using System.Data;
using Sуstеm.Сопfigurаtiоп;
using Sуstеm.Соllесtiо пs;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using Sуstеm.WеЬ.U I .WеЬСопtrоls;
using Sуstеm.WеЬ.U I .WеЬСопtrоls.Wе Ь Раrts;
using Sуstеm.WеЬ.U I .НtmlСопtгоls;
string tide ;
title = WizardStepl.1ide;
sb.App end(tit1e + ":" + DropDownListl.Text + "< Ьг />");
title = WizardStep2.1ide;
in! index = RadioButtonList1.Selectedlndex;
if(index! = - 1) // Есл и что-то выбрал
sb.App end(tit1e + ":" + RadioButtonListl.Items[index]Text + "<Ь
/* !! !!!!!!!!! !!!!! !!!!! !!!!! !!!! !!! !!!! !!!!! !!!!! !!!!! !!!!
// Для элеме н та класса C heckBoxList н ужн о пров е рять коллею
C heckBoxList C hec kBoxListl ;
foreac h (ListItem item in C hec kBoxListl .Items)
(
if (item.Selected)
sb.Append(item.Text + "; '');
}
!!!! !! !!!! !!!!! !!! !!!!! !! !!!!! !!!!! !! !!! !! !!!! !!!!! !!!!! */
WizardC ontrol.aspx.cs
• ~ ерейдите в режиме Design на первый шаг WizardStep1, чтобы
автоматич ески уста новил ось в НОЛЬ з нач е ние свойства
ActiveSteplndex объекта Wi z ardl и пользователю вначале
отображался первый ша г
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Друзья Вы выбрали:
Туризм Друзья: Их Клинтон
Встречи Туризм: В чужом огороде
i!<>m Встречи: 0123456789
Вам рекомендуется:
у сrшеЮlая диета + КШlЗьма ззз перцем!
< На зад ГОТОВО
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Свойство Описание
Среди свойств компонента Wiz ard есть общие сти ли, затра rnв ающие
на стро йки всех элементов, а есть ИН Д ИВИдУальные для каждой группы
элемен тов . Следует по м нить , что если одновременно определены те И
д р уги е стили , то конфrlИкта не БУдет, прос то ИН Д ИВИдУальные
пара метры нас тройки п ерео пр ед елят (отме нят) общие стили. В языках
прогр амм иров а ни я используется тот же принцип , переменная
Наследуется
Wi z ard от класса
ControlSty l e WebControl И применяется ко
всем е го р азделам
'"
В.М. СН"",,,В Про,рйммupoвtJNШ' Na ASP.NET
Применяется к компонентам
S t epSty l e представления, ВЮJюченным в
текущий шаг
навигационные кнопки
свойством S t epType=Step
Применяется к кнопкам РinisЬ и
. . h. 1 Previous в последнем шаге, если их
FlnlS Prev l ousBu t tonSty е ~
ВИДИМОСТЬ зада на сваиством
StepType=Fin i sh
Применяется к кнопке Са псе! во
всех шагах, если ее видимость
CancelButtonSty l e
задана свойством
Di splayCancelBu t ton=True
Wizard Т asks
Auto Foгmat, ,.
Step IДрузья
Add/Remove WizardSteps,
COГNert to StartNavigationT errplate
Convert to StepNa~gatiooTerrplate
Convert to FlrishNavlgationTem~te
Convert to SId=BarTemplate
Ecit т em~tes
~;'::~:,~~~езиде,нтсамый
Дaneе > I
'"
в м С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
,j!; Cut
i:tI Сору
I~ Paste
Paste Alternate
Х D€l€te
Stye ...
View Code
Edit Iтag€
I Auto Format".
I
AddjRemove WizardSteps ...
COIlvert to Starb\JavigatjOllTemplate
COIlvert to StepNavigatjonTemplate
COIlvert to Finsf"Ii\JavigatiOllTemplate
COIlveгt to SideBatTemplate
-
EditTemplate ~
liJ Re~esh
Ia Propeгties
--1.
Про,раммupoвtJNШ' ,ю ASP.NET
..:..IgJ~
поощрения
выбрали:
Д~IУЭ'ЬЯ Похожий на Чингиэ-Хана
~~,:=,~:Ha
6
Луне
0123456769
ре ко мен дуется :
в приведе н ном коде каждый дескри п тор настра ив ает свою область
элемен та Wi z a r d . Обрат и те в ни мание, что приведе нны й блок кода
настройки ст илей оболо ч ка доба в ляет в самый конец ко нт ей н е р а
<asp : Wiz a r d></asp : Wiz a r d> , чтобы легче было искать . Если
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
Browse : АI CompOllents •
System.Web.UI.WebCono-о •. \ • , ~ HeaderSty1e
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
промеЖУГОЧНblХ и последнем
S t epNav i gationTemplate
шагах, если их видимость задана
СВОЙСТВОМ StepType=Step
Определяет кнопку навигации Firllsh
. . h .. 1 для последнего шага , если ее
FlnlS NavlgatlonTemp ate ~
ВИДИМОСТЬ задана СВОИСТВОМ
StepType=Fini sh
Wizard Tasks
Auto Format ...
Step I Друзья ~I
Add/Rermve Wizck-dStерs ...
Сопvегt to StepNavlgabonTemp~te
Сопvегt to Fil~hNalkJаtioпТеm~аtе
Сопvегt to SideВErTerrplate
Edit Те rmlates
в м СН"",,,В Про,раммupoвtJNШ' NQ ASP.NET
~, ш W"u .... JcoпIrol.m.p х.. • Х
.. "'"
~
~ Pacte
~,
повокшага:
нт самый лучший?
""
Pacte !.Jf<м:e
Х
\3
Do!I;\i'
st'y4o" ,
у~",с ш Д"'"'~O>
I
Y~"'C~tc..~
r' • Ie "'7"
~! \0 s t<pNa"9ЖOl1Т~ tе
CC<"Ner! to F ~уqжaтrещ::t;te
Е'J~"гг~ч_еЫJ"
• ~T" ~
SIJ~~ te
V\f\zaroXontrol.aspx,cs WlzardControl.aspx*
""""""""""""""""""Ш
г Wizard Tasks
izard 1 - HeaderTemplate
Template EditJng fVIode
Г\ead€rTemplate
Dsplay
Это заголовок шага:
Еnd Т enWte Ediln;i
•
т.
--------------------------------------------
'"
В.М. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
<HeaderTemplate >
<Ы >
Э то заголовок шага:
<%= Wizard1.ActiveStep.1ide %>
</h1>
< lНеаdеrТеmрlatе >
Wizard Tasks
Auto Format ...
Step I Друзья
Add/Remove WIZE<dSteps ..
Convert to StartNav'9аtюпТеmрзtе
Сопvегt to StepNavigationTemplate
Сопvегt to Fi1ishNavigаtioпТеmраtе
Convert to 5ЮеВагТеmplаtе
Edit Те rmlates
в м
, _". СН"",,,В
.. "'"
~
~ Pacte
~,
повокшага:
нт самый лучший?
""
Pacte !.Jf<м:e
Х
\3
Do!I;\i'
st'y4o" ,
У~"'С Ш
Д"'"'~O>
I
y~", Ce>rrpmmt c..~
r' • Ie "'7"
Auto FCfma!",
~! \0 s t<pNa"9ЖOl1Тeщ:>ii; tе
CC<"Ner! to F ~уqжaтrещ::t;te
Е'J~"гг~ч_е Ы J"
• ~T" ~
SIJ~~ te
у Wiz"dCono-u,asрх,сs / WizardControl,a5px* I I
~jzard 1 - SideB-аrТеmрlаtе
SideBarTemplate
i
ISldeВarTemplate - Cl,ck to s!art eciting, I
Wiza-dСonUоl,asрх.сS WizardControl.aspx*
~~~~~~~~~~~Ш
izardl- SideBarTemplate Wizard Т asks
ТеЩ)lаtе Eclmg Mode
SideBarTemplate
~ Cut
Сору
Paste
Paste Altегn.зtе
Х Delete
Style ...
View Code
~ View in Browser
Edit Image
EditTemplate ~
[i] Re~esh
~ Properoes
Wizard Tasks
Auto Format ...
Сопvегt to StepNavlgabonTemp~te
Сопvегt to Fil~hNa~аtЮпТеm~аtе
о, ~
I!p Это заголовок шага:
l' Друзья
I , Тm изм Какой президент самый лучший?
I ' Встыечи
rн аш Пути н :.:J
I , .!illY!:
Дал е е> ]
I !
• ~ыполните ст р аницу, все должно работат ь
Следует все гда п ом н ить, что при всем мно гообразии н астроек стилей и
шаблонов ин терфейс п о умолчанию является самым выверенным с
точки зрения экономии ресурсов при обмене с юшентом. Поэтому
менять н астройки нужно разум н о , за неорди н арный интерфейс
потребуется дополни тельная п лата .
I Далее>
т
(
'"
в.м. С""",,,в Про,раммupoвtJNШ' 110 ASP.NET
предопределенными именами