Documente Academic
Documente Profesional
Documente Cultură
NET
29.03.2015 1/33
ASP.NET
Introducere in ASP.NET
Controale Web
Pagina in ASP.NET
Timpul de viata al paginii
Procesarea paginii
Controale de tip lista
Structura unei aplicatii ASP.NET
Bibliografie
Pro ASP.NET 3.5 in C# 2008, Second Edition:
-2007 by Matthew MacDonald and Mario Szpuszta
Ioan Asiminoaei
ASP.NET
29.03.2015 2/33
ASP.NET
Caracteristici ASP.NET:
Integrat cu .NET Framework.
Compilat, nu interpretat.
Pagina este compilata cand este accesata prima data.
Multilimbaj.
Gazduit de Common Language Runtime.
Orientat-obiect.
Ruleaza pe orice browser.
Usor de configurat si distribuit .
Caracteristicile principale ale unei aplicatii web
Aplicatiile web se executa pe server.
Cererile clientului sunt procesate pe server folosind o tehnica numita postback, care
trimite pagina pe server cand sunt indeplinite anumite conditii. Dupa ce primeste pagina,
ASP.NET genereaza evenimentele pe partea de server pentru a notifica codul (a apela
metodele atasate evenimentelor).
Aplicatiile Web sunt fara stare.
Dupa ce pagina este retransmisa clientului aceasta este distrusa din memoria
serverului. Exista mecanisme ce asigura o anumita persistenta a datelor, cel mai cunoscut
fiind view state , ce pastreaza informatia in campuri ascunse (hidden).
Ioan Asiminoaei
ASP.NET
29.03.2015 3/33
Formulare HTML
In HTML forma cea mai simpla de a trimite date de la client la server o constituie utilizarea
formularelor (tag <form>). Un formular poate contine mai multe controale, in fapt este un
container pentru controale.
Exemplu
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs"
Inherits="ExASP.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Programmer Questionnaire</title>
</head>
<body>
<form method="post" action="page.aspx">
<div>
Enter your first name:
<input type="text" name="FirstName" />
<br />
Enter your last name:
<input type="text" name="LastName" />
<br />
<br />
You program with:
<br />
<input type="checkbox" name="CS" />C#
<br />
<input type="checkbox" name="VB" />VB .NET
<br />
<br />
<input type="submit" value="Submit" id="OK" />
</div>
</form>
</body>
</html>
Observatie
Acest formular contine urmatoarele controale: doua TextBox-uri, doua CheckBox-uri si un
Button. Operatia folosita de formular este POST.
Propritatea name a controlului permite accesarea informatiei din control (cod C#).
Pe partea clientului se va afisa pagina:
Ioan Asiminoaei
ASP.NET
29.03.2015 4/33
Cand utilizatorul face clic pe butonul OK (textul din buton este Submit), browser-ul
colecteaza informatia din controale, o concateneaza intr-un string si apoi o trimite serverului
folosind operatia HTTP POST.
Informatia trimisa contine o serie de perechi nume/valoare separate prin &.
Pentru controalele ce au valori booleene se va transmite numai valoarea on cand aceste
controale sunt activate.
Exemplu de informatie transmisa catre server.
FirstName=Matthew&LastName=MacDonald&CS=on&VB=on
Pentru paginile din ASP.NET, putem determina valoarea din controale folosind sintaxa C#.
string firstName = FirstName.Text;
Observatie
In exemplul de mai sus FirstName (cu sau fara ghilimele) este ID-ul controlului.
In ASP.NET toate controalele sunt plasate intr-un singur tag <form>, tag marcat cu atributul
runat="server". Controlul <form> este un container de controale.
Ioan Asiminoaei
ASP.NET
29.03.2015 5/33
Toate paginile web dintr-o aplicatie web partajeaza aceleasi resurse de memorie, date
globale la nivel de aplicatie, date la nivel de sesiune, date din cache.
Toate paginile web dintr-o aplicatie web partajeaza aceleasi setari de configurare. Pot
fi realizate setari diferite pentru subdirectoare individuale ale aceluiasi director virtual.
Descriere
Contine assemblies .NET precompilat (in mod abisnuit DLL)
folosite de aplicatia ASP.NET.
App_Code
Contine fisiere cod sursa ce sunt compilate in mod dinamic pentru a
fi folosite in aplicatie. Codul compilat nu apare in directorul bin.
Daca se foloseste modelul de proiect si nu cel Web Site atunci acest
director nu este necesar.
App_GlobalResources Mentine resursele globale accesibile fiecarei pagini din aplicatie.
App_LocalResources
Resurse numai pentru o pagina dedicata.
App_WebReferences
Mentine referinte la serviciile Web folosite de aplicatie. Fisiere
WSDL si documente UDDI (Universal Description Discovery and
Integration).
App_Data
Rezervat pentru baze de date si fisiere XML.
App_Browsers
Contine definitiile browser-ului memorat in fisiere XML.
App_Themes
Contine themes folosite de aplicatie.
Bin
Ioan Asiminoaei
ASP.NET
29.03.2015 6/33
Evenimentele aplicatiei
Evenimente ce apar la fiecare cerere.
Evenimente ce apar sub anumite conditii.
Ioan Asiminoaei
ASP.NET
29.03.2015 7/33
Configurare ASP.NET
Configurarea se realizeaza prin intermediul fisierelor XML.
Aceste fisiere nu sunt niciodata blocate si sunt usor de accesat si replicat (cu existenta
drepturilor necesare).
Fisierul machine.config
Se gaseste in directorul C:\windows\Microsoft.Net\Framework\versiune_net\Config.
Este bine comentat si poate fi folosit pentru crearea unui fisier de configurare propriu.
Fisierul web.config
Fiecare aplicatie web mosteneste setari din machine.config si fisierul web.config din radacina
directorului virtual.
Scheletul de baza al fisierului web.config este:
<?xml version="1.0"?>
<configuration>
<appSettings />
<connectionStrings />
<system.web>
<!-- ASP.NET configuration sections go here. -->
</system.web>
</configuration>
Ioan Asiminoaei
ASP.NET
29.03.2015 8/33
Cerere client.
Initializare pagina in framework.
Executie cod initializare.
Validare.
Tratare evenimente.
Raspuns catre client.
Stergere obiecte din server (Cleanup).
4. Validare pagina
Proprietatea Page.IsValid.
Page.IsValid nu poate fi apelata inainte ca validarea sa fi avut loc. Page.IsValid poate fi
testata intr-un handler pentru un control ce are proprietatea CausesValidation=True si a
initiat un postback sau dupa apelul lui Page.Validate(string). In cazul cand nu se respecta
aceste reguli, mesajul este cel de mai jos.
Ioan Asiminoaei
ASP.NET
29.03.2015 9/33
5. Tratare evenimente
In acest moment pagina este complet incarcata si validata.
Evenimentele ASP.NET pot fi clasificate in :
Evenimente cu raspuns imediat : clic pe un buton, imagine, link, etc.
Evenimente de tip Change : schimbare selectie intr-un control sau text intr-un
TextBox. Trebuie sa avem declarat AutoPostBack = true.
7. Cleanup
Eveniment Page.Dispose. Eliberare resurse.
Ioan Asiminoaei
29.03.2015 10/33
ASP.NET
Ioan Asiminoaei
29.03.2015 11/33
ASP.NET
else
{
Ioan Asiminoaei
ASP.NET
29.03.2015 12/33
Ioan Asiminoaei
ASP.NET
29.03.2015 13/33
Ioan Asiminoaei
ASP.NET
29.03.2015 14/33
Conformitate cu XHTML
Controalele Web in ASP.NET sunt conforme cu standardul XHTML 1.1.
ASP.NET reda controalele folosind marcaj conform cu XHTML, adica sunt respectate
urmatoarele reguli:
Tag si numele atributelor trebuie sa fie lowercase.
Toate elementele trebuiesc inchise (<p></p>).
Toate valorile atributelor trebuie sa fie furnizate intre ghilimele (runat="server").
Trebuie folosit id pentru attribute si nu name.
XHTML nu suporta frame si formatare fara CSS.
Urmatoarele controale ASP.NET pot folosi atributul target:
AdRotator
TreeNode
HyperLink
HyperLinkColumn
BulletedList
Ioan Asiminoaei
ASP.NET
29.03.2015 15/33
Clasa Page
Pagina este un container pentru controalele pe care le contine. Putem vizualiza controalele
dintr-o pagina folosind urmatorul cod (in Page_Load):
foreach (Control control in Page.Controls)
{
Response.Write(control.GetType().ToString() + " - <b>" +
control.ID + "</b><br />");
}
Response.Write("<hr />");
Acest cod afiseaza numai controalele de pe primul nivel. Un control intr-o pagina poate fi
container pentru alte controale.
Urmatorul cod returneaza toate controalele continute intr-o pagina:
public void FindAllControls(List<Control> list, Control parent)
{
foreach (Control c in parent.Controls)
{
if (c is Control)
{
list.Add(c);
if (c.Controls.Count > 0)
{
this.FindAllControls(list, c);
}
}
}
}
Observatie
Toate formularele web sunt instante ale clasei Page.
Cateva proprietati importante ale acestei clase:
Session
Application
Cache
Request ; Request.QueryString["id"] ;
Response ; Response.Write() ; Response.Redirect("page.aspx") ;
Response.Redirect(http://...)
Server ; Server.Transfer() ; HtmlEncode ; HtmlDecode ;
UrlEncode ; UrlDecode ; MapPath ;
User
Trace
Controale server
Controalele server sunt clase in .NET Framework ce reprezinta elemente vizuale pe un
formular web.
Ioan Asiminoaei
29.03.2015 16/33
ASP.NET
Controls
ID ID control
Page returneaza o referinta la obiectul pagina ce contine controlul.
Parent returneaza o referinta la parintele controlului.
Visible : bool (true, false).
DataBind() Asociaza controlul si toate controalele descendente la sursa de date specificata.
FindControl() cauta control dupa nume.
Ioan Asiminoaei
ASP.NET
29.03.2015 17/33
Controale Web
Clasa de baza WebControl derivata din Control.
Proprietati importante
AccessKey
BackColor BorderColor BorderStyle - Dashed, Dotted, Double, Groove, Ridge, Inset, Outset, Solid, None.
BorderWidth
CssClass
Enabled
HTML si proprietati
<asp:Button>
<input type="submit"/> or
<input type="button"/>
Text, CausesValidation, PostBackUrl,
ValidationGroup.
Event Click.
<asp:CheckBox>
<input type="checkbox"/>
AutoPostBack, Checked, Text,
TextAlign.
Event CheckedChanged.
<asp:FileUpload>
<input type="file">
FileBytes, FileContent, FileName,
HasFile, PostedFile, SaveAs()
<asp:HiddenField>
<input type="hidden">
Value
<asp:HyperLink>
<a>...</a>
ImageUrl, NavigateUrl, Target, Text
<asp:Image>
<img/>
AlternateText, ImageAlign, ImageUrl
<asp:ImageButton>
<input type="image"/>
CausesValidation, ValidationGroup.
Event Click.
Ioan Asiminoaei
29.03.2015 18/33
ASP.NET
<asp:ImageMap>
<map>
HotSpotMode, HotSpots (collection),
AlternateText, ImageAlign, ImageUrl
<asp:Label>
<span>...</span>
Text, AssociatedControlID
<asp:LinkButton>
<a><img/></a>
Text, CausesValidation, ValidationGroup, Click event
<asp:Panel>
<div>...</div>
BackImageUrl, DefaultButton,
GroupingText, HorizontalAlign,
Scrollbars, Wrap
<asp:RadioButton>
<input type="radio"/>
AutoPostBack, Checked, GroupName,
Text, TextAlign, CheckedChanged event
<asp:Table>
<table>...</table>
BackImageUrl, CellPadding,
CellSpacing, GridLines,
HorizontalAlign, Rows (collection)
<asp:TableCell>
<td>...</td>
ColumnSpan, HorizontalAlign,
RowSpan, Text, VerticalAlign, Wrap
<asp:TableRow>
<tr>...</tr>
Cells (collection), HorizontalAlign,
VerticalAlign
<asp:TextBox>
<textarea>...</textarea>
AutoPostBack, Columns, MaxLength,
ReadOnly, Rows, Text, TextMode, Wrap.
Event TextChanged.
Ioan Asiminoaei
ASP.NET
29.03.2015 19/33
Exemplu
<asp:TextBox runat="server"
ID="TextBox1"
Text="This is a test"
ForeColor="red"
BackColor="lightyellow"
Width="250px"
Font-Name="Verdana"
Font-Bold="True"
Font-Size="20" />
Unitati de masura
px pixeli
% - procent din pagina afisata
Exemplu declarare in pagina:
<asp:Panel Height="300px" Width="50%" id="pnl" runat="server" />
Enumerari
In cod se foloseste sintaxa C# (BorderStyle.Dashed) iar in aspx nu se include numele
enumerarii:
<asp:TextBox BorderStyle="Dashed" Text="Border Test" id="txt"
runat="server" />
Culori
In cod enumerarea Color.
In aspx numele culorii.
//C#
ctrl.ForeColor = Color.Red;
//ASP.NET
<asp:TextBox ForeColor="Red" Text="Test" id="txt" runat="server" />
<asp:TextBox ForeColor="#ff50f" Text="Test" id="txt" runat="server" />
Ioan Asiminoaei
ASP.NET
29.03.2015 20/33
Focus
DefaultFocus
<form id="Form1" DefaultFocus="TextBox2" runat="server">
Ioan Asiminoaei
ASP.NET
29.03.2015 21/33
Butonul implicit
Butonul implicit executa metoda atasata evenimentului click cand s-a apasat tasta Enter.
Este la nivel de pagina web, iar in cadrul paginii poate fi la nivel de Panel.
In <form> se foloseste proprietatea DefaultButton in care se specifica ID controlului.
<form id="Form1" DefaultButton="cmdSubmit" runat="server">
Ioan Asiminoaei
ASP.NET
29.03.2015 22/33
Controalele List
Controale ce au ca articole o colectie de obiecte (ListBox, DropDownList, GridView,
etc.).
<asp:DropDownList> contine o colectie de obiecte <asp:ListItem>.
Ioan Asiminoaei
ASP.NET
29.03.2015 23/33
Membri
AutoPostBack = true => actioneaza la schimbarea selectiei curente.
Items returneaza o colectie de articole ListItem.
SelectedIndex returneaza sau seteaza indexul articolului selectat. Pentru liste ce suporta
selectia multipla trebuie scanata intreaga colectie pentru a determina articolele selectate
(verificare proprietate Selected).
SelectedItem returneaza o referinta la primul articol ListItem selectat.
DataSource - se seteaza la un obiect ce contine informatii pe care dorim sa le afisam
pentru articol.
DataValueField indica ce proprietate sau camp va fi folosit ca valoare pentru articol (nu e afisat
dar poate fi citit in cod).
DataTextFormatString seteaza formatarea stringului folosit pentru redarea articolului.
Eveniment: SelectedIndexChanged la schimbarea selectiei.
DropDownList
ListBox
CheckBoxList
RadioButtonList.
Exemplu. Fiecare control de tip lista are setata pe true proprietatea AutoPostBack.
<form id="form1" runat="server">
<!-- DropDownList -->
<div>
<asp:Label BackColor="Yellow" Text="Control DropDownList " runat="server"/>
   
<asp:DropDownList ID="DropDownList1" runat="server" Height="16px"
Width="189px" AutoPostBack="true"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Text="DDL Item 1" Value="1" />
<asp:ListItem Text="DDL Item 2" Value="2" />
</asp:DropDownList>
<asp:Label Text=" Valoare selectata din DropDownList " runat="server" />
   
<asp:Label ID="DDLResult" runat="server" />
</div>
<br /> <br />
<!-- ListBox -->
Ioan Asiminoaei
ASP.NET
29.03.2015 24/33
<div>
<asp:Label BackColor="Yellow" Text="Control ListBox" runat="server" />
<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="true"
OnSelectedIndexChanged="ListBox1_SelectedIndexChanged" Width="201px">
<asp:ListItem Text="ListBox Item 1" Value="1" />
<asp:ListItem Text="ListBox Item 2" Value="2" />
</asp:ListBox>
<asp:Label Text=" Valoare selectata din ListBox " runat="server" />
   
<asp:Label ID="LBResult" runat="server" />
</div>
<br /> <br />
<!-- CheckBoxList -->
<div>
<asp:Label BackColor="Yellow" Text="Control CheckBoxList" runat="server" />
<asp:CheckBoxList ID="cbl" runat="server" AutoPostBack="true"
Width="201px" OnSelectedIndexChanged="cbl_SelectedIndexChanged">
<asp:ListItem Text="CBL Item 1" Value="1" />
<asp:ListItem Text="CBL Item 2" Value="2" />
</asp:CheckBoxList>
<asp:Label Text=" Valoare selectata din CheckBoxList " runat="server" />
   
<asp:Label ID="CBLResult" runat="server" />
</div>
</form>
Ioan Asiminoaei
29.03.2015 25/33
ASP.NET
= {Horizontal, Vertical}
Ioan Asiminoaei
29.03.2015 26/33
ASP.NET
Controlul BulletedList
Este echivalent cu <ul> sau <ol>.
Articolele se ataseaza la control folosind proprietatea Items.
Proprietati
BulletStyle determina stilul de marcare al listei.
Valori posibile:
Numbered, LowerAlpha, UpperAlpha, LowerRoman, UpperRoman, Disc,
Circle, Square, CustomImage (caz in care trebuie setata proprietatea
BulletImageUrl).
BulletImageUrl FirstBulletNumber seteaza prima valoare din lista (cu care se incepe marcarea
elementelor).
DisplayMode : {Text, LinkButton eveniment clic, HyperLink textul este un URL}.
Exemplu. Codul pentru tratarea evenimentului clic e scris in pagina.
<%@ Page Language="C#" %>
<!DOCTYPE html>
<script runat="server">
protected void BulletedList1_Click(object sender,
BulletedListEventArgs e)
{
if (e.Index ==0)
{
Image1.ImageUrl = "~/images/audi.png";
}
if (e.Index ==1)
{
Image1.ImageUrl = "~/images/bmw.png";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
Ioan Asiminoaei
ASP.NET
29.03.2015 27/33
<br />
Click the name to see the user's photo
<asp:BulletedList ID="BulletedList1" runat="server"
DataSourceID="SqlDataSource1"
DataTextField="username"
DataValueField="Id"
DisplayMode="LinkButton"
OnClick="BulletedList1_Click">
</asp:BulletedList>
<!Sursa de date -->
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [usertable]">
</asp:SqlDataSource>
</div>
<asp:Image ID="Img1" runat="server" Height="110px" Width="110px"
/>
<br />
</form>
</body>
</html>
ASP.NET
29.03.2015 28/33
Proprietatea RequiredFieldvalidator.
RangeValidator, CompareValidator si RegularExpressionValidator nu verifica
daca controlul este vid si vor returna succes in acest caz.
RequiredFieldValidator rezolva problema.
Pentru controalele de tip lista, proprietatea ce se valideaza este Value, care nu e afisata in
browser. Va trebui sa folosim atributul Value pentru validare.
Cand proiectam un control web derivat din WebControl putem specifica proprietatea ce va fi
validata.
[ValidationProperty("Text")]
public class FancyTextBox : WebControl
{...}
Procesul de validare
Proprietatea CausesValidation = {true, false}.
Se poate folosi validarea controalelor pentru a verifica o pagina in mod automat cand aceasta
este trimisa la server sau manual in cod.
Validarea automata presupune folosirea proprietatii CausesValidation pentru controale.
Daca CausesValidation = false atunci ASP.NET va ignora validarea controalelor,
pagina va fi returnata si codul de tratare al evenimentelor va rula normal.
Daca CausesValidation = true (valoare implicita), ASP.NET va valida in mod automat
pagina, se valideaza fiecare control din pagina si daca o validare nu se executa cu succes
ASP.NET va returna pagina cu informatii despre erori (eroare).
Clasa BaseValidator
Membri
ControlToValidate indica controlul ce va fi validatt.
Display = {Static, Dynamic} indica modul cum va fi afisata eroarea.
EnableClientScript = {true, false} daca este validare pe partea de client sau nu. True
implicit.
Enabled = {true, false} enable / disable validare.
ErrorMessage mesajul de eroare afisat de ValidationSummary.
Text textul erorii afisat controlul de validare.
IsValid determina daca valoarea asociata controlului de intrare este valida sau nu. Poate fi
realizata pe partea de client si pe partea de server.
Ioan Asiminoaei
ASP.NET
29.03.2015 29/33
Observatie
Putem verifica proprietatea Page.IsValid pentru a sti daca toate controalele de intrare din
pagina sunt valide.
SetFocusOnError - focus mutat pe campul ce contine eroarea. Regula: primul control setat,
primul luat in considerare.
ValidationGroup validare pentru anumite controale grupate.
Validate() metoda revalideaza controalele si actualizeaza proprietatea IsValid.
Controlul RequiredFieldValidator
<asp:TextBox runat="server" ID="NameTextBox" />
<asp:RequiredFieldValidator runat="server"
ControlToValidate="NameTextBox" ErrorMessage="Name is required"
Display="dynamic">*
</asp:RequiredFieldValidator>
Controlul RangeValidator
<asp:TextBox runat="server" ID="DayOff" />
<asp:RangeValidator runat="server" Display="dynamic"
ControlToValidate="DayOff" Type="Date"
ErrorMessage="Day Off is not within the valid interval"
MinimumValue="08/05/2008" MaximumValue="08/20/2008">*
</asp:RangeValidator>
Controlul CompareValidator
<asp:TextBox runat="server" ID="Age" />
<asp:CompareValidator runat="server" Display="dynamic"
ControlToValidate="Age" ValueToCompare="18"
ErrorMessage="You must be at least 18 years old"
Type="Integer" Operator="GreaterThanEqual">*
</asp:CompareValidator>
sau
<asp:TextBox runat="server" TextMode="Password" ID="Password" />
<asp:TextBox runat="server" TextMode="Password" ID="Password2" />
<asp:CompareValidator runat="server"
ControlToValidate="Password2" ControlToCompare="Password"
ErrorMessage="The passwords don't match"
Type="String" Display="dynamic">
<img src="imgError.gif" alt="The passwords don't match" />
</asp:CompareValidator>
Controlul RegularExpressionValidator
<asp:TextBox runat="server" ID="Email" />
<asp:RegularExpressionValidator runat="server"
Ioan Asiminoaei
ASP.NET
29.03.2015 30/33
ControlToValidate="Email" ValidationExpression=".*@.{2,}\..{2,}"
ErrorMessage="E-mail is not in a valid format" Display="dynamic">*
</asp:RegularExpressionValidator>
Memento
Character Escapes Description
Ordinary characters Characters other than .$^{[(|)*+?\ match themselves.
\b Matches a backspace.
\t Matches a tab.
\r Matches a carriage return.
\v Matches a vertical tab.
\f Matches a form feed.
\n Matches a newline.
\ If followed by a special character (one of .$^{[(|)*+?\), this character
escape matches that character literal. For example, \+ matches the +
character.
Character Class Description
. Matches any character except \n.
[aeiou] Matches any single character specified in the set.
[^aeiou] Matches any character not specified in the set.
[3-7a-dA-D] Matches any character specified in the specified ranges (in the
example the ranges are 37, ad, AD).
\w Matches any word character; that is, any alphanumeric character or the
underscore (_).
\W Matches any nonword character.
\s Matches any whitespace character (space, tab, form feed, newline,
carriagereturn, or vertical feed).
\S Matches any nonwhitespace character.
\d Matches any decimal character.
\D Matches any nondecimal character.
Using more advanced syntax, you can specify that a certain character or
class of characters must be present at least once, or between two and six
times, and so on. The quantifiers are placed just after a character or a
range of characters and allow you to specify how many times the preceding
character must be matched (see Table 4-19).
Character Class Description
. Matches any character except \n.
[aeiou] Matches any single character specified in the set.
[^aeiou] Matches any character not specified in the set.
[3-7a-dA-D] Matches any character specified in the specified ranges (in the
example the ranges are 37, ad, AD).
\w Matches any word character; that is, any alphanumeric character or the
underscore (_).
\W Matches any nonword character.
\s Matches any whitespace character (space, tab, form feed, newline,
carriage return, or vertical feed).
\S Matches any nonwhitespace character.
\d Matches any decimal character.
\D Matches any nondecimal character.
Quantifier Description
* Zero or more matches
+ One or more matches
? Zero or one matches
{N} N matches
{N,} N or more matches
Ioan Asiminoaei
ASP.NET
29.03.2015 31/33
Controlul CustomValidator
Pe partea de client
<script type="text/javascript">
function EmpIDClientValidate(ctl, args)
{
// the value is a multiple of 5 if the modulus by 5 is 0
args.IsValid=(args.Value%5 == 0);
}
</script>
Controlul ValidationSummary
Nu executa actiuni de validare ci prezinta un rezumat al erorilor aparute in procesul de
validare.
Daca proprietatea ShowMessageBox = true rezumatul erorilor este afisat pe partea de client
intr-o caseta de dialog JavaScript sau pe pagina daca ShowSummary = true, atentie mai
trebuie setata proprietatea DisplayMode in acest din urma caz.
DisplyMode = {SingleParagraph, List, BulletList}.
<asp:ValidationSummary runat="server" ID="Summary"
ShowSummary="true" DisplayMode="BulletList"
HeaderText="<b>Please review the following errors:</b>"
/>
Ioan Asiminoaei
29.03.2015 32/33
ASP.NET
Ioan Asiminoaei
ASP.NET
29.03.2015 33/33
Controale avansate
Elemente complexe de interfata; sunt controale complet diferite de cele din HTML.
ASP.NET include numeroase controale avansate cum ar fi : controale de tip lista, de navigare,
de securitate si controale pentru portaluri web.
Urmatoarele controale nu intra in nici una din categoriile de mai sus.
AdRotator: afiseaza bannere definite intr-un fisier XML.
Calendar: selectie data calendaristica.
MultiView, View, si Wizard: lucreaza asemanator ca Panel si permit comutarea intre
grupurile de controale din pagina.
Substitution: este un placeholder ce permite personalizarea output-ului din ASP.NET.
Xml: are ca intrare un fisier XML si un fisier de stiluri XSLT si afiseaza rezultatul in browser.
Ioan Asiminoaei