Butoanele UpdatePanel sunt partea centrală a funcțiilor AJAX din ASP.NET. Ele sunt utilizate cu controlul ScriptManager pentru a susține redarea parțială a paginii. Redarea parțială a paginilor reduce necesitatea reacțiilor sincrone și a modificărilor complete ale paginilor atunci când doar o parte a paginii trebuie să fie actualizată. Redarea parțială a paginii îmbunătățește interacțiunea cu utilizatorii, deoarece reduce pâlpâirea ecranului, care apare atunci când întreaga pagină este retransmisă și îmbunătățește interactivitatea paginii web.
Când pagina este redată parțial, controlul poate efectua un transfer inversat care modifică întreaga pagină sau retransmiterea asincronă și actualizează conținutul unuia sau mai multor controale UpdatePanel. Indiferent dacă controlul provoacă actualizări asincrone postback și UpdatePanel depinde de următoarele:
Dacă Proprietățile UpdateMode ale UpdatePanel Întotdeauna. Actualizarea conținutului comenzii este actualizată cu fiecare retransmisie calculată pe pagină. Aceasta include backoffs asincrone de la controalele din interiorul altor controale UpdatePanel și backspins de la controalele care nu sunt în interiorul controalelor UpdatePanel.
Dacă proprietatea UpdateMode este condiționată. Actualizarea panoului de control este actualizată în următoarele cazuri:
Când apelați Actualizare, metoda UpdatePanel este gestionată în mod explicit.
Când controlul UpdatePanel este imbricat într-un alt control UpdatePanel și panoul părinte este actualizat.
Atunci când un backoff este apelat de către un control care este definit ca un declanșator, folosind Proprietățile declanșatoare ale UpdatePanel de control. În acest caz, controlul inițiază direct actualizarea conținutului panoului. Controlul poate fi în interiorul sau în afara UpdatePanel al comenzii asociate declanșatorului.
Când proprietatea ChildrenAsTriggers este adevărată și este un control pentru copii, controlul UpdatePanel provoacă un transfer invers. Controalele copilului UpdatePanel imbricate nu provoacă updatePanel-ul părinte, cu excepția cazului în care acestea sunt definite în mod explicit ca declanșatoare.
Combinația dintre parametrii ChildAsTriggers Proprietăți false și UpdateMode Always properties este nevalidă și o excepție va fi aruncată.
Când controlul UpdatePanel execută metoda post asincronă, acesta adaugă un antet HTTP. Unele servere proxy elimină antetul HTTP. În acest caz, serverul procesează cererea ca transfer normal de retur, ceea ce duce la o eroare a clientului. Pentru a rezolva această problemă, introduceți un câmp de formular personalizat când efectuați scrieri asincrone. Apoi, verificați câmpul antetului sau formularului personalizat din codul serverului.
Aveți posibilitatea să utilizați mai multe controale UpdatePanel pentru a actualiza diferite zone ale paginii independent unul de celălalt. Atunci când o pagină care conține unul sau mai multe controale UpdatePanel este afișată prima dată, tot conținutul tuturor controalelor UpdatePanel sunt executate și trimise la browser. Cu retransmisii asincrone ulterioare, conținutul fiecărui control UpdatePanel nu poate fi actualizat, în funcție de setările de panou și logica client sau server pentru panourile individuale.
De asemenea, puteți utiliza controalele UpdatePanel în următoarele scenarii:
În controalele utilizatorilor.
Inserate într-un alt control UpdatePanel.
Controlează în șablon, cum ar fi comenzile GridView sau Repeater.
UpdatePanel poate adăuga elemente de control declarativ sau programat.
Puteți adăuga controlul UpdatePanel programabil, dar nu puteți adăuga în mod programatic trigger-e. Pentru a crea un comportament de declanșare, puteți înregistra un control pe pagină ca un control post-spate asincron. Acest lucru se poate face apelând metoda RegisterAsyncPostBackControl a comenzii ScriptManager. Apoi, puteți crea un handler de evenimente care se execută ca răspuns la retransmisia asincronă și în apelul handler Actualizarea metodei UpdatePanel a comenzii.
UpdatePanel Controlul acceptă atributele expando. Acest lucru vă permite să specificați o clasă CSS pentru elementele HTML afișate în controale. De exemplu, puteți crea marcajul afișat în exemplul următor: