Controale și Formview detailsview

GridView și ListView - controale de neegalat atunci când aveți nevoie pentru a afișa un tabel cu mai multe rânduri strânse de informații. Cu toate acestea, uneori este necesar pentru a vedea punctul de vedere detaliată a unui anumit intrare. Deși este posibil să se găsească o soluție cu utilizarea de coloane șablon în GridView, ASP.NET include, de asemenea, două controale care sunt proiectate special pentru acest scop - cel DetailsView și Formview. Ambele afișează o înregistrare la un moment dat, dar poate include o butoane de paginare opționale care vă permit să mergeți prin intermediul înregistrărilor (afișate pe o pagină). Ambele dintre ele sprijină template-uri, The Formview le cere. Aceasta este o diferență esențială între aceste două elemente de control.

O altă diferență este că DetailsView afișează conținutul său într-un tabel, în timp ce Formview oferă flexibilitate în afișarea conținutului fără tabele. Astfel, în cazul în care aveți de gând să utilizați template-uri, The Formview oferă flexibilitate maximă. Cu toate acestea, dacă doriți să evitați complexitatea asociate cu template-uri, The DetailsView oferă un model simplu care vă permite să construiască mai multe formular pentru a afișa date compuse din câmpuri obiecte - aproape la fel de mult ca GridView este construit din coloane obiecte.

După ce a ocupat în GridView mass-media și ListView, puteți maestru foarte ușor și rapid DetailsView și Formview. Acest lucru se datorează faptului că DetailsView și Formview GridView imprumuta o parte a modelului.

DetailsView

Element DetailsView proiectat pentru a afișa o înregistrare la un moment dat. El plasează fiecare informație (fie un câmp sau a proprietății), într-un rând separat al tabelului.

membru DetailsView poate fi atașat la o colecție de elemente. În acest caz, se afișează primul element din grup. De asemenea, vă permite să se deplaseze de la o înregistrare la alta folosind pagina de controale prin setarea AllowPaging proprietate la true. de control al paginii în același timp, poate fi configurat folosind proprietățile și PagingSettings PagingStyle - exact în același mod ca și se face în GridView. Singura diferență este că nu există nici un suport pentru prelucrarea personalizate de pagini, ceea ce înseamnă că obiectul datelor original este întotdeauna pe deplin extras.

Figura de mai jos prezintă elementul DetailsView legat de un set de înregistrări ale angajaților, cu informații complete despre fiecare angajat:

Controale și Formview detailsview

elemente de pagină DetailsView de control tentant să utilizați pentru a crea user-friendly înregistrări browser. Din păcate, această abordare este oarecum ineficientă. Pentru a începe cu, de fiecare dată când utilizatorul de la un registru la altul se efectuează întotdeauna trimiterea inversă separat (în timp ce controalele sub formă de tabele care afișează o multitudine de intrări dintr-o dată). Dar cel mai mare dezavantaj este că de fiecare dată când trimiteți feedback-ul de pagini extrase din nou set complet de înregistrări, în ciuda faptului că doar unul este prezentat. Dacă decideți să pună în aplicare un browser bazat pe înregistrările DetailsView, atunci, cel puțin, va trebui să activați cache pentru a reduce sarcina pe baza de date. Astfel, un set complet de înregistrări preluate din memoria cache, atunci când este posibil, fără a necesita operații de baze de date separate.

De multe ori, cea mai bună opțiune ar fi crearea de selecție controale proprii de înregistrări folosind un subset de date. De exemplu, puteți crea o listă drop-down si leaga-l la o sursă de date care solicită doar numele angajaților. Apoi, atunci când un nume este selectat în listă, puteți extrage toate detaliile doar că înregistrarea utilizând o sursă de date diferită.

Desigur, pentru a determina cea mai bună abordare este influențată de mai mulți factori, inclusiv dimensiunea completă a înregistrării (în măsura în care aceasta este mai mult decât un simplu două domenii - numele și prenumele), utilizarea de template-uri (în cazul în care utilizatorul mediu are nevoie pentru a vedea una sau două intrări, sau a le vedea), și numărul total de înregistrări. (În cazul în care numărul de intrări se ridică la câteva zeci, le puteți regăsi cu ușurință toate, dar ar trebui să gândească de două ori dacă mii de intrări.)

domenii Definirea

descriptor BoundField poate fi folosit pentru a seta proprietăți, cum ar fi text titlu, formatare comportament editare șir, etc. În plus, puteți utiliza ShowHeader de proprietate. Atunci când este falsă, ea forțează DetailsView exclude textul antet din șirul, iar câmpul are ambele coloane.

domenii ale modelului - nu este singura parte a GridView, care moștenește elementul DetailsView. El folosește, de asemenea, un set similar de stiluri, un set similar de evenimente și modelul de editare similare.

operația de înregistrare

Când faceți clic pe Delete (Ștergere) operațiunea de ștergere se efectuează imediat. Cu toate acestea, atunci când ați terminat faceți clic pe butonul Edit (Editare) sau Insert (Inserare), The DetailsView intră în modul de inserție sau de editare. Formal DetailsView suportă trei moduri (reprezentate listare DetailsViewMode). Aceste moduri sunt numai în citire, Editare și Inserare. Modul curent poate fi definit în orice moment, prin verificarea proprietății CurrentMode. și schimba modul poate ChangeMode () apel. Cu proprietăți DefaultMode pot crea DetailsView, care începe întotdeauna în modul de editare sau insert.

În DetailsView se introduce modul folosește întotdeauna textul de tip standard, câmpurile de control - aceleași ca și GridView. Pentru o mai mare flexibilitate în timpul editării poate fi aplicat un control Formview elementului.

Controale și Formview detailsview

Dacă transferați DetailsView în modul de editare pentru a înregistra o modificare, și apoi se trece la un nou record, folosind butoanele de comandă pagină, DetailsView este în modul de editare. În cazul în care acest comportament nu este necesar, puteți răspunde la evenimentul apela programatic metoda PageIndexChanged și ChangeMode () pentru a reveni în modul read-only.

Dacă aveți nevoie de flexibilitate maximă de template-uri, șablonul prevede doar controalele Formview pentru afișarea și editarea o singură înregistrare. Modelul șablon Grace Formview este că se potrivește destul de strâns modelul TemplateField în GridView. Acest lucru înseamnă că puteți lucra cu următoarele șabloane: