Windows Programming Web controls. •Τα web forms είναι container αντικείμενα σχεδιασμένα για να κάνουνε host άλλα controls, όπως α) Web server controls,

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Advertisements

Οπτικός Προγραμματισμός  Παράγεται από την κλάση TColorDialog. Επιτρέπει στον χρήστη την επιλογή χρώματος από τα βασικά χρώματα και τον καθορισμό ειδικών.
Προγραμματισμός Ι (αποφύγετέ τον!) 3) Διακοπτόμενος βρόχος: (αποφύγετέ τον!) float energy;......while(TRUE){drink_water(); if(energy
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Τεχνικές Προγραμματισμού με την JavaScript Στυλιάδης Κων/νος Φλώρινα, Οκτώβριος 2004.
Οπτικός Προγραμματισμός  Οι εφαρμογές οπτικού προγραμματισμού μπορούν να ακολουθούν ένα από τα παρα- κάτω τρία μοντέλα όσον αφορά το interface:  SDI.
Οπτικός Προγραμματισμός ( C++ Builder 5.0 )
Επικοινωνία Ανθρώπου Μηχανής Εαρινό Εξάμηνο 2007 Web Interfaces Εργαλεία παραγωγής κώδικα συμβατού με ASP Γαλούσης Θεόδωρος Α.Μ 630 Δρομπίλας Δημήτριος.
Προγραμματισμός Διαδικτύου Δρ. Παναγιώτης Συμεωνίδης Διεπαφή Εφαρμογής Παγκόσμιου Ιστού (Front End Programming)
Δημιουργία ιστοσελίδων στο διαδίκτυο με Dreamweaver, PHP, MySQL και Apache ΠΛΗΡΟΦΟΡΙΚΗ Ι (Β ή Γ Λυκείου) ΜΑΘΗΜΑ ΕΝΔΙΑΦΕΡΟΝΤΟΣ(2ωρο) [Στην περίπτωση που.
Copyright ©: SAMSUNG & Samsung Hope for Youth. Με επιφύλαξη κάθε νόμιμου δικαιώματος Εκπαιδευτικό υλικό Λογισμικό: Δημιουργία εφαρμογών Επίπεδο.
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Οπτικός Προγραμματισμός Published Properties (Object inspector)  Alignment : (taRightJustify, taLeftJustify) καθορίζει άν το Caption θα εμφανίζεται στα.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
TEMPLATES STANDARD TEMPLATE LIBRARY ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ C Evangelos Theodoridis.
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
Δ.Π.Θ. Συνδέοντας έγγραφα - 1 Συνδέοντας έγγραφα Μια σύνδεση στο Web (link) αποτελείται από δύο μέρη : Aυτό που βλέπουμε στη σελίδα και λέγεται άγκυρα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
Uniform Resource Locators (URLs) Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World Wide Web) Στη Java,
ΕΡΓΑΛΕΙΟ ΠΑΡΑΓΩΓΗΣ ΠΕΡΙΕΧΟΜΕΝΟΥ ΣΕ WEB SITE (CONTENT MANAGEMENT TOOL)
ΛΟΓΙΣΜΙΚΟ Πρόγραμμα Είναι μία ακολουθία από εντολές, σε λογική σειρά, με σκοπό να κατευθύνουν τον Η.Υ. στην εκτέλεση των επιθυμητών εργασιών. ΛΟΓΙΣΜΙΚΟ.
GTK - ΕΙΣΑΓΩΓΗ ΦΩΤΗΣ ΣΙΤΑΡΑΣ A.M: 1117.
ΕΣΔ 232: Οργάνωση δεδομένων στην Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Φόρμες Δημιουργία Περιεχομένου Ι.
ΣΥΝΑΡΤΗΣΕΙΣ.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
Ιστοσελίδες -- Web-site. Εισαγωγή Στατικές ιστοσελίδες Δυναμικές ή Διαδραστικές ιστοσελίδες:  Ο τρόπος παρουσίασης και τα περιεχόμενά της ιστοσελίδας.
Power Point Κεφάλαιο 5.
ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΛΕΙΟΥ ΑΝΑΠΤΥΞΗΣ: VISUAL BASIC .NET
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
XERTE TUTORIAL - ΣΗΜΕΙΩΣΕΙΣ ΕΡΓΑΣΤΗΡΙΟΥ ΘΜΕΛ ΣΤ. ΔΗΜΗΤΡΙΑΔΗΣ Xerte Interaction – Διάδραση Θεωρίες Μάθησης & Εκπαιδευτικό Λογισμικό Σημειώσεις Εργαστηρίου.
Παρουσίαση της Motif Αναστάσιος Κρυσταλλίδης Α.Μ.: 776 Δημήτρης Μπαμπαλίκης Α.Μ.: 941 Επικοινωνία Ανθρώπου-Μηχανής.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Εισαγωγή στη .net Visual C++
DreamWeaver Παρουσίαση Εργαλείου για Ανάπτυξη Web-based GUIs 1.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: To λογισμικό του υπολογιστή
Templates Standard Template Library (STL) Exceptions Μεταπτυχιακό Πρόγραμμα Σπουδών, Τμήμα Εφαρμοσμένης Πληροφορικής.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
Κεφάλαιο 10 – Υποπρογράμματα
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Πολυμορφισμός.
Κουλίνας Μιχαήλ Α.Μ.:774 Μπουρνάζης Χρήστος Α.Μ.:792 Ρογκάκος Γεώργιος Α.Μ.:817.
Κεφάλαιο 11.1 Uniform Resource Locators (URLs). Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World.
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
1 Β΄ Μέρος : ΠΡΟΧΩΡΗΜΕΝΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΤΟΥ GUI Παπανίκος Νικόλαος Α.Μ Φασουράκη Ασημίνα Α.Μ 711.
HTML-PHP Καμπέρης Άρης Α.Μ. 763 Zaher Owda Α.Μ. 849.
Βασικά στοιχεία της Java
Παρουσίαση εργαλείου Microsoft Silverlight Βερβέρης Παναγιώτης Α.Μ.888 Παπαθανασίου Αθανάσιος Α.Μ.958 1Παρουσίαση τεχνολογίας Silverlight.
Μάθημα 9 Λίγο απ’ όλα! HTML 5 Advanced PHP XML. HTML 5 Πρόκειται για μια νέα έκδοση της HTML που συμπληρώνει τις δυνατότητες της γλώσσας με κάποια Tags.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
ΔΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙΔΩΝ Ένας Συνοπτικός Οδηγός Καμήλαλη Δέσποινα Μαθηματικός, MSc Πληροφορικής, Υποψήφια Διδάκτωρ Χαροκοπείου Πανεπιστημίου Αθηνών.
Αντικειμενοστραφής Προγραμματισμός Ι
Windows Programming Web Forms.
Βασικά Web εργαλεία και τεχνολογίες
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε.
ΦΑΣΕΙΣ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΟΣ – ΑΝΑΠΤΥΞΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΙΚΤΥΑΚΩΝ ΕΦΑΡΜΟΓΩΝ
Κεφάλαιο 10 Streams.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Server-side vs Client-side
Εισαγωγή στον Προγραμματισμό με Python, ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Εισαγωγή στον Προγραμματισμό με Python Εβδομάδα 1: Βασικά στοιχεία.
ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ
Συγγραφέας: Ζαγκότας Στεφανος Επιβλέπων Καθηγητής: Ούτσιος Ευάγγελος
Οδηγός δημιουργίας ιστολογίου στο blogger.com
Φόρμες Φόρμες χρησιμοποιούνται για να δημιουργήσουμε ένα φιλικό περιβάλλον για την διαχείριση των δεδομένων της βάσης. Επίσης δίνεται η δυνατότητα δημιουργίας.
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
Μεταγράφημα παρουσίασης:

Windows Programming Web controls

•Τα web forms είναι container αντικείμενα σχεδιασμένα για να κάνουνε host άλλα controls, όπως α) Web server controls, β) HTML controls, γ) Validation Controls και δ) User Controls •Τα user controls είναι custom controls που δημιουργούνται από τον προγραμματιστή

HTML και Web controls •Τα HTML controls είναι κλάσεις που κληρονομούν κλάσεις από το namespace System.Web.UI.HtmlControls. Αυτά τα controls δημιουργούνται από το.ΝΕΤ όταν προστεθεί στο HTML tag τους η ιδιότητα runat=“server” • •Τα Web Controls είναι αντικείμενα που δημιουργούνται από κλάσεις που υπάρχουνε στο namespace System.Web.UI.WebControls. Αυτά τα controls δημιουργούνται με την προσθήκη του προθέματος asp: και την ιδιότητα runat=“server” •

Τύποι Web Controls •Το κεφάλαιο χωρίζει τα Web Controls στις παρακάτω κατηγορίες 1.Απλά controls 2.Controls κουμπιά (button) 3.Controls λίστες (list) 4.Data-bound controls (μπορούν να ‘συνδεθούν’ με δεδομένα) 5.Controls ημερολόγια (calendar) 6.Controls ελέγχου (validation)

Προγραμματισμός των Web Controls •Ο προγραμματισμός των Web Controls συνίσταται στα παρακάτω βήματα 1.Δημιουργία του control σε ένα container αντικείμενο (π.χ. μια Web φόρμα) 2.Προσδιορισμός των ιδιοτήτων του control 3.Προσδιορισμός των events του control 4.Δημιουργία των μεθόδων που θα αποκρίνονται σε events του control 5.Προσδιορισμός αν το control θα έχει την ιδιότητα DoPostBack true ή false

Απλά Web Controls: TextBox •Αυτό το control δημιουργείται με την εντολή • •Το TextBox είναι ένα control που έχει διάφορες ιδιότητες, όπως Text,TextMode,Rows,Columns,AutoPostBack •Ανάμεσα στα events που μπορεί να κάνει fire αυτό το control έχουμε το TextChanged, το οποίο ενεργοποιείται μόνο αν η ιδιότητα AutoPostBack είναι αληθής. Αυτό είναι σημαντικό καθώς η ενεργοποίηση ή μη αυτής της ιδιότητας μπορεί να έχει αντίκτυπο στην απόδοση της σελίδας.

Απλά Web Controls: Label •Αυτό το control δημιουργείται με την εντολή • •Είναι από τα πιο απλά controls •Προσοχή: 1.Ενεργοποίηση ή μη του event TextChanged, το οποίο μπορεί να γίνει handle από κάποια κατάλληλη συνάρτηση 2.Η χρησιμοποίηση του αντίστοιχου HTML αντικειμένου κάνει τη σελίδα μας να είναι πιο γρήγορη.

Απλά Web Controls: HyperLink •Αυτό το control έχει δύο υποστάσεις. Είτε ως κείμενο είτε ως εικόνα <asp:HyperLink Text="Click here" Target="_new" NavigateUrl=“ RunAt="server" /> •Η χρήση του αντίστοιχου HTML κάνει τη σελίδα πιο γρήγορη.

Απλά Web Controls: CheckBox και RadioButtons •Το CheckBox είναι ένα control που έχει ιδιότητες όπως Checked,Text κ.λ.π. που επηρεάζουνε την εμφάνιση του control. •Τα RadioButtons κληρονομούν το CheckBox. Επιτρέπουνε το grouping πολλών αμοιβαία αποκλειόμενων κουμπιών. •

Απλά Web Controls: Image •Το control αυτό μπορεί να χρησιμοποιηθεί είτε με τη μορφή κειμένου είτε με τη μορφή εικόνας. •Η HTML έκδοση αυτού του control έχει καλύτερη απόδοση.

Απλά Web Controls: Table •Αυτό το control αποτελείται από συλλογές από άλλα controls που χρησιμοποιούνται για δημιουργήσουνε πίνακες. Τα controls που το αποτελούνε είναι τύπου asp:Table, asp:TableRow, asp:TableCell. Με αυτά τα controls μπορούνε δυναμικά να δημιουργηθούνε πίνακες. Π.χ. • void Page_Load (Object sender, EventArgs e) { for (int i=0; i<2; i++) { TableRow row = new TableRow (); for (int j=0; j<2; j++) { TableCell cell = new TableCell (); cell.Text = String.Format ("Row {0}, Column {1}", i + 1, j + 1); row.Cells.Add (cell); } MyTable.Rows.Add (row); }

Controls κουμπιά •Υπάρχουν τρία είδη από control κουμπιά. Button, LinkButton και ImageButton, που έχουν ακριβώς την ίδια λειτουργία και παρουσιάζονται σαν ένα κανονικό κουμπί, έναν υπερσύνδεσμο ή μία εικόνα αντίστοιχα. •Αυτά τα controls μπορούνε να κάνουνε fire δύο τύπους άπό events: Click και Command. •Το Click event μπορεί να χρησιμοποιηθεί για αναγνώριση των x και y συντεταγμένων αν γίνει σε μία εικόνα, ενώ το Command μπορεί να έχει παραμέτρους που να αλλάξουν δυναμικά την εκτέλεση του script.

Controls λίστες •Υπάρχουν 4 controls που κληρονομούν το System.Web.UI.WebControls.ListControl: •ListBox, DropDownList, CheckBoxList και RadioButtonList •Ασχέτως του τύπου του container control, τα αντικείμενα μέσα σε αυτά τα controls γράφονται ως asp:ListItem αντικείμενα. •Η.List.SelectedIndex ιδιότητα επιστρέφει ένα αντικείμενο ListItem.

Data Binding με τα Controls Λίστες •Αν υποθέσουμε ότι έχουμε ένα ListBox ονόματι Currencies και θέλουμε να το γεμίσουμε με αντικείμενα, τότε μπορούμε να χρησιμοποιήσουμε έναν κώδικα σαν τον παρακάτω: DataSet ds = new DataSet(); ds.ReadXml = (Server.MapPAth(“Rates.XML”)); foreach (DataRow in ds.Tables[0].Rows) Currencies.items.Add ( row[“Currency”].ToString()); •Αντί για αυτό όμως, μπορούμε να χρησιμοποιήσουμε την πολύ πιο γρήγορη τεχνική του data binding. DataSet ds = new DataSet(); ds.ReadXml = (Server.MapPAth(“Rates.XML”)); Currencies.DataSource = ds; Currencies.DataTextField = “Currency”; Currencies.DataBind(); •Τα ListBox αντικείμενα κληρονομούν ιδιότητες από το IListControl. Μερικές από αυτές είναι το DataSource, το οποίο χρησιμοποιείται, όπως είδαμε παραπάνω, για data binding, και μπορεί να πάρει σαν source αντικείμενα που κάνουνε implement το Interface IEnumerable.

Data Bound Controls •Η κύρια ιδέα είναι ότι αυτά τα controls μπορούνε να γίνουνε bind σε DataSource αντικείμενα και μας παρέχουνε τα μέσα για να απεικονίσουμε τα περιεχόμενά τους μέσω της μεθόδου myControl.DataBind();, χρησιμοποιώντας και κάποιες άλλες οδηγίες όπως • •Υπάρχουνε 3 τύποι από data bound controls 1.Repeater Controls 2.DataList Controls 3.DataGrid Controls

Repeater Control •Το control αυτό δείχνει πανομοιότυπα αντικείμενα, το ένα μετά το άλλο. void Page_Load (Object sender, EventArgs e) { if (!IsPostBack) { string[] beatles = { "John", "Paul", "George", "Ringo" }; MyRepeater.DataSource = beatles; MyRepeater.DataBind (); }

Εναλλασόμενα αντικείμενα σε Repeater Control •Προβολή εναλλασόμενων αντικειμένων σε διαφορετικά χρώματα

Header και Footer templates •Προβολή εναλλασόμενων γραμμών σε διαφορετικά χρώματα, με υπογραμμισμένο Header και Footer

Repeater Control <%# DataBinder.Eval (Container.DataItem, "title") + " (" + DataBinder.Eval (Container.DataItem, "price", "{0:c}") + ")" %>

Repeater Control •Αυτός είναι ο κώδικας για να γεμίσει με αντικείμενα από τη βάση το Repeater της προηγούμενης σελίδας void Page_Load (Object sender, EventArgs e) { if (!IsPostBack) { SqlConnection connection = new SqlConnection ("server=localhost;database=pubs;uid=sa;pwd="); try { connection.Open (); SqlCommand command = new SqlCommand ("select * from titles where price != 0",connection); SqlDataReader reader = command.ExecuteReader(); MyRepeater.DataSource = reader; MyRepeater.DataBind (); } finally { connection.Close (); }

<asp:Repeater ID="MyRepeater" OnItemCommand="OnItemCommand" RunAt="server"> Title Price Action <%# DataBinder.Eval (Container.DataItem, "price", "{0:c}") %> <asp:Button Text="Add to Cart" RunAt="server" CommandArgument='<%# DataBinder.Eval (Container.DataItem, "title") %>' /> void Page_Load (Object sender, EventArgs e) { if (!IsPostBack) { SqlConnection connection = new SqlConnection ("server=localhost;database=pubs;uid=sa;pwd="); try { connection.Open (); SqlCommand command; command = new SqlCommand ("select * from titles where price != 0", connection); SqlDataReader reader = command.ExecuteReader (); MyRepeater.DataSource = reader; MyRepeater.DataBind (); } finally { connection.Close (); } void OnItemCommand (Object sender, RepeaterCommandEventArgs e) { Output.Text = e.CommandArgument.ToString (); }

Repeater Control •Το παρακάτω τμήμα κώδικα μας δείχνει πως μπορούμε να βάλουμε εικόνα σαν υπερσύνδεσμο σε ένα repeater control <a href='Images/Large/<%# DataBinder.Eval (Container.DataItem, "LargeCover") %>'> <img src='Images/Small/<%# DataBinder.Eval (Container.DataItem, "SmallCover") %>'

DataList Control •Αυτό το control μας παρέχει τη δυνατότητα για 1.Multi-Column Format (από τις ιδιότητες RepeatColumns και RepeatDirection) 2.ItemSelection (επιλογή αντικειμένου - από την ιδιότητα SelectedIndex) 3.Item Editing (επεξεργασία αντικειμένου – από τις ιδιότητες EditItemStyle και EditItemTemplate)

•Τα DataList controls, όταν πατηθεί ένα LinkButton, κάνουνε fire ένα event ItemCommand και η συνάρτηση που το κάνει handle επιλέγει το αντικείμενο στο οποίο έγινε κλικ. Το DataList κάνει multicolumn διαμόρφωση με το να διαμοιράζει τα αντικείμενα του σε δύο στήλες: <asp:DataList ID="MyDataList" RunAt="server" RepeatColumns="2" RepeatDirection="Horizontal" OnItemCommand="OnItemCommand"> " RunAt="server" /> void Page_Load (Object sender, EventArgs e) { if (!IsPostBack) { string[] beatles = { "John", "Paul", "George", "Ringo" }; MyDataList.DataSource = beatles; MyDataList.DataBind (); } void OnItemCommand (Object sender, DataListCommandEventArgs e) { MyDataList.SelectedIndex = e.Item.ItemIndex; }

DataList Control

<asp:DataList ID="MyDataList" RepeatColumns="3" RepeatDirection="Horizontal" CellPadding="4" OnItemCommand="OnItemCommand" RunAt="server"> <a href='Images/Large/<%# DataBinder.Eval (Container.DataItem, "LargeCover") %>'> <img src='Images/Small/<%# DataBinder.Eval (Container.DataItem, "SmallCover") %>'> <asp:LinkButton CommandName="Select" RunAt="server" CommandArgument='<%# DataBinder.Eval (Container.DataItem, "Comment") %>' Text='<%# DataBinder.Eval (Container.DataItem, "Title") + " " + DataBinder.Eval (Container.DataItem, "Number") %>' /> <%# DataBinder.Eval (Container.DataItem, "Rating", "{0:f1}") %>

Datagrid Control •Το datagrid είναι το πιο συχνά χρησιμοποιούμενο control. •Χρησιμοποιείται για να παρουσιάσει δεδομένα σε μορφή σειρών και στηλών (όπως και το Excel) •Έχει πάρα πολλές ιδιότητες και events, αλλά μπορεί να προγραμματιστεί αρκετά εύκολα. •Η κύρια διαδικασία όταν προγραμματίζουμε ένα datagrid είναι να του προσδιορίσουμε χρώματα κ.λ.π. καθώς και να του προσθέσουμε στοιχεία που θα το κάνουνε πιο εύχρηστο.

Datagrid control void Page_Load (Object sender, EventArgs e) { if (!IsPostBack) { SqlConnection connection = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd="); try { connection.Open (); SqlCommand command = new SqlCommand("select * from titles where price != 0",connection); SqlDataReader reader = command.ExecuteReader (); MyDataGrid.DataSource = reader; MyDataGrid.DataBind (); } finally { connection.Close (); }

Datagrid control •Τύποι στηλών στο Datagrid Τύπος στήληςΠεριγραφή BoundColumnΔημιουργεί μία στήλη το περιεχόμενο της οποίας προέρχεται από ένα πεδίο στο αντικείμενο που θα οριστεί σαν datasource ButtonColumnΔημιουργεί μια στήλη που περιέχει κουμπιά EditColumntΔημιουργεί μια στήλη με κουμπιά, το πάτημα των οποίων επιτρέπει να γίνει επεξεργασία των αντικειμένων του datagrid HyperLinkColumnΔημιουργεί μια στήλη με υπερσυνδέσμους. Το κείμενό τους μπορεί να είναι στατικό ή να είναι κάποιο πεδίο του datasource TemplateColumnΔημιουργεί μία στήλη με αντικείμενα η εμφάνιση των οποίων καθορίζεται από ένα UI template, προγραμματιζόμενο από το χρήστη Το datagrid υποστηρίζει και προχωρημένες λειτουργίες, όπως ταξινόμηση των δεδομένων του

<asp:DataGrid ID="MyDataGrid" AutoGenerateColumns="false" CellPadding="2" BorderWidth="1" BorderColor="lightgray" Font-Name="Verdana" Font-Size="8pt" GridLines="vertical" Width="90%" OnItemCommand="OnItemCommand" RunAt="server"> <asp:BoundColumn HeaderText="Item ID" DataField="title_id" /> <asp:BoundColumn HeaderText="Title" DataField="title" /> <asp:BoundColumn HeaderText="Price" DataField="price" DataFormatString="{0:c}" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="right" /> <asp:ButtonColumn HeaderText="Action" Text="Add to Cart" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" CommandName="AddToCart" /> <HeaderStyle BackColor="teal" ForeColor="white" Font-Bold="true" /> <AlternatingItemStyle BackColor="beige" ForeColor="darkblue" />

Ταξινόμηση στο datagrid •Το datagrid μπορεί να δείξει ταξινομημένα δεδομένα άμα γίνει bind σε ένα DataView void Page_Load (Object sender, EventArgs e) { SqlDataAdapter adapter = new SqlDataAdapter ("select * from titles where price != 0", "server=localhost;database=pubs;uid=sa;pwd="); DataSet ds = new DataSet (); adapter.Fill (ds); DataView view = new DataView (ds.Tables[0]); view.Sort = "Title ASC"; MyDataGrid.DataSource = view; MyDataGrid.DataBind (); }

Ταξινόμηση στο datagrid, 2 <asp:DataGrid ID="MyDataGrid" AutoGenerateColumns="false" CellPadding="2" BorderWidth="1" BorderColor="lightgray" Font-Name="Verdana" Font-Size="8pt" GridLines="vertical" Width="90%" OnItemCommand="OnItemCommand" RunAt="server" AllowSorting="true" OnSortCommand="OnSort"> <asp:BoundColumn HeaderText="Item ID" DataField="title_id" /> <asp:BoundColumn HeaderText="Title" DataField="title" SortExpression="title ASC" /> <asp:BoundColumn HeaderText="Price" DataField="price" DataFormatString="{0:c}" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="right" SortExpression="price DESC" />...

Pageable grids •Το datagrid control μπορεί να γίνει bound σε βάσεις δεδομένων οι πίνακες των οποίων περιέχουν περισσότερα αντικείμενα από όσα μπορεί να δείξει μια ιστοσελίδα (ή να χρειάζονται πολλά scrolls της σελίδας). Συνεπώς, η σελιδοποίηση των αντικειμένων είναι αναγκαία, και πολύ εύκολη. <asp:DataGrid ID="MyDataGrid“ AutoGenerateColumns="false" CellPadding="2" BorderWidth="1" BorderColor="lightgray" Font-Name="Verdana" Font-Size="8pt" GridLines="vertical" Width="90%" RunAt="server" AllowPaging="true" PageSize="10" OnPageIndexChanged="OnNewPage"> <asp:BoundColumn HeaderText="Product ID" DataField="ProductID" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" /> <asp:BoundColumn HeaderText="Product Name" DataField="ProductName" HeaderStyle-HorizontalAlign="center" /> <asp:BoundColumn HeaderText="Unit Price" DataField="UnitPrice" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="right" DataFormatString="{0:c}" /> <asp:BoundColumn HeaderText="Unit" DataField="QuantityPerUnit" HeaderStyle-HorizontalAlign="center" /> <HeaderStyle BackColor="teal" ForeColor="white" Font-Bold="true" /> <AlternatingItemStyle BackColor="beige" ForeColor="darkblue" />

Controls ημερολόγια •Είναι πολύ εύκολη η χρήση του Calendar Control στην ASP.NET. Το μόνο που χρειάζεται είναι γνώση των ιδιοτήτων, των events του calendar control, και πώς να γραφτούν συναρτήσεις που να χειρίζονται τα συγκεκριμένα events. <asp:Calendar DayNameFormat="FirstLetter" ShowGridLines="true" BackColor="beige" ForeColor="darkblue" SelectedDayStyle-BackColor="red" SelectedDayStyle-ForeColor="white" SelectedDayStyle-Font-Bold="true" TitleStyle-BackColor="darkblue" TitleStyle-ForeColor="white" TitleStyle-Font-Bold="true" NextPrevStyle-BackColor="darkblue" NextPrevStyle-ForeColor="white" DayHeaderStyle-BackColor="red" DayHeaderStyle-ForeColor="white" DayHeaderStyle-Font-Bold="true" OtherMonthDayStyle-BackColor="white" OtherMonthDayStyle-ForeColor="lightblue" Width="256px" RunAt="Server">

Controls ημερολόγια <asp:Calendar ID="MyCalendar" SelectionMode="DayWeekMonth" OnSelectionChanged="OnDateSelected" RunAt="server" /> void OnDateSelected (Object sender, EventArgs e) { StringBuilder builder = new StringBuilder (); foreach (DateTime date in MyCalendar.SelectedDates) { builder.Append (date.ToLongDateString ()); builder.Append (" "); } Output.Text = builder.ToString (); } Η εκτέλεση του παραπάνω κώδικα θα εμφανίσει τις μέρες της επιλεγμένης εβδομάδας.

Controls ημερολόγια •Ένα από τα πιο χρήσιμα events είναι το DayRender. Αυτό το event μπορεί να αλλάξει τον τρόπο που εμφανίζεται κάθε κελί στο ημερολόγιο. •Στο παρακάτω τμήμα κώδικα, η μέθοδος OnDayRender μας εξασφαλίζει ότι μόνο οι Παρασκευές και τα Σάββατα είναι επιλέξιμα, και εμφανίζει αυτά τα κελιά αντίστοιχα. void OnOrder (Object sender, ImageClickEventArgs e) { if (ShowDate.SelectedDate.Year > 1900) Output.Text = "You selected " + ShowName.SelectedItem.Text + " on " + ShowDate.SelectedDate.ToLongDateString (); else Output.Text = "Please select a date"; } void OnDateSelected (Object sender, EventArgs e) { Output.Text = ""; } void OnDayRender (Object sender, DayRenderEventArgs e) { e.Day.IsSelectable = (e.Day.Date.DayOfWeek == DayOfWeek.Friday ¦¦ e.Day.Date.DayOfWeek == DayOfWeek.Saturday) && e.Day.Date >= DateTime.Today && !e.Day.IsOtherMonth; if (e.Day.IsSelectable && e.Day.Date != ShowDate.SelectedDate) e.Cell.BackColor = System.Drawing.Color.Beige; }

Controls ελέγχου •Τα controls ελέγχου είναι από τα πιο χρήσιμα. Όπως υποδηλώνει το όνομά τους, χρησιμοποιούνται για να ελέγξουν την οποιαδήποτε είσοδο δίνεται από το χρήστη. •Ο έλεγχος γίνεται με τον έλεγχο αν το control έχει περιεχόμενο, ή αν το περιεχόμενο συμβαδίζει με κάποιους περιορισμούς, όπως με πεδία τιμών, τύπους τιμών, κανονικές εκφράσεις κ.λ.π. •Αυτοί οι περιορισμοί προσδιορίζονται κατά τη δημιουργία των control ελέγχου, ή μπορεί να αλλάξουν δυναμικά. •Ο έλεγχος πρέπει να γίνεται και client side αλλά και server side. •Στο client side, μπορεί να χρησιμοποιηθεί για να αποφεύγονται μη αναγκαία postbacks (αποστολή της σελίδας στο server για επεξεργασία).

Controls ελέγχου •Υπάρχουν 6 τύποι control ελέγχου. Κληρονομούν το BaseValidator, και το όνομα τους προδίδει τη χρηστικότητά τους. 1. RequiredFieldValidator 2. RangeValidator 3. RegularExpressionValidator 4. CompareValidator 5. CustomValidator 6. ValidationSummary •Τα πρώτα 5 κληρονομούν από το BaseValidator ιδιότητες όπως controlToValidate, ErrorMessage, ForeColor, Display, EnableClientScript. •Κάποια έχουν και τις δικές τους ιδιότητες, όπως την EnableServerScript.

Controls ελέγχου <asp:TextBox ID="Password" TextMode="Password" RunAt="server" /> <asp:RequiredFieldValidator ControlToValidate="Password" ErrorMessage="Required field" Display="static" ForeColor="blue" RunAt="server" /> <asp:TextBox ID="Password" TextMode="Password" RunAt="server" /> <asp:RequiredFieldValidator ControlToValidate="Password" ErrorMessage="Required field" Display="dynamic" ForeColor="blue" RunAt="server" /> <asp:RegularExpressionValidator ControlToValidate="Password" ValidationExpression=".{8,}" ErrorMessage=“Enter at least 8 chars" Display="dynamic" ForeColor="blue" RunAt="server" /> <asp:TextBox ID="Percent" RunAt="server" /> <asp:RangeValidator ControlToValidate="Percent" MinimumValue="0" MaximumValue="100" Type="Integer" ErrorMessage=“Out of range" Display="static" RunAt="server" /> Τα control ελέγχου μπορούν να κάνουν validate ένα μόνο ένα control.

Control ελέγχου •Μπορείτε επίσης να δείτε τα 1.CompareValidator 2.RegularExpressionValidator 3.CustomValidator •Το control ValidationSummary μπορεί να προγραμματιστεί να δέχεται μηνύματα από επιλεγμένα validation controls στην ίδια σελίδα και να τα παρουσιάζει ενιαία.