Контроли и DetailsView FormView

GridView и ListView - ненадминат контрол, когато трябва да покажат стегната маса с множество редове с информация. Въпреки това, понякога е необходимо, за да видите подробна информация за даден запис. Въпреки че е възможно да се намери решение с използването на шаблони колони в гледания, ASP.NET включва и две контроли, които са специално предназначени за тази цел - най-DetailsView и FormView. Както показва един запис в даден момент, но може да включва допълнителни пейджинг бутони, които ви позволяват да се движите на записите (показване на една страница). Двете от тях подкрепят шаблоните, за FormView изисква от тях. Това е ключов разлика между тези две контролни елементи.

Друга разлика е, че DetailsView показва съдържанието му в рамките на една маса, а FormView осигурява гъвкавост при показване на съдържание, без таблици. По този начин, ако имате намерение да използвате шаблони, за FormView осигури максимална гъвкавост. Все пак, ако искате да избегнете усложненията, свързани с шаблони, за DetailsView предлагаме прост модел, който ви позволява да се изгради мулти-форма за показване на данни, съставени от области обекти - почти толкова, колкото гледания е изработена от обекти колони.

След като приключва в медиите гледания и ListView, можете много лесно и бързо овладяване на DetailsView и FormView. Това се дължи на факта, че DetailsView и FormView гледания заемат част от модела.

DetailsView

DetailsView елемент за цел да покаже един запис в даден момент. Той поставя всяка част от информацията (било то поле или свойство) на отделен ред на таблицата.

член DetailsView може да бъде прикрепен към събиране на елементи. В този случай, той показва на първата позиция в групата. Той също така ви позволява да се премине от един запис в друг с помощта на страниците-контрол чрез създаване AllowPaging собственост, за да е истина. контрол страница в същото време може да бъде конфигуриран с помощта на свойствата и PagingStyle PagingSettings - точно по същия начин, както се прави в гледания. Единствената разлика е, че няма подкрепа за потребителски обработка на страници, което означава, че предметът на първоначалните данни е винаги напълно изваден.

Фигурата по-долу показва DetailsView елемент свързан с набор от архивите на служителите, с пълна информация за всеки служител:

Контроли и DetailsView FormView

Страница елементи DetailsView контролират съблазнително да използвате за създаване на лесни за записите на браузъра. За съжаление, този подход е малко по-неефективно. Да започнем с това, всеки път, когато потребителят от един запис в друга, винаги се извършва изпращането на отделни обратно (докато таблични управлява изображението на множество записи наведнъж). Но най-големият недостатък е, че всеки път, когато изпратите страници за обратна връзка отново извлечени пълен набор от документи, независимо от факта, че се показва само едно. Ако решите да се реализира записи браузър, базиран на DetailsView, а след това, най-малкото, ще трябва да се даде възможност за кеширане да се намали натоварването на базата данни. По този начин, пълен набор от записи извлечена от кеша, когато това е възможно, без да се изисква отделни операции в базата данни.

Често, най-добрият вариант би бил да се създаде собствени контроли за избор на записи с помощта на подмножество от данните. Например, можете да създадете падащия списък и го свързва с източник на данни, който изисква само имената на работниците и служителите. След това, когато едно име е избран в списъка, можете да извлечете всички подробности само, че запис с помощта на друг източник на данни.

Разбира се, за да се определи най-добрият подход е повлияна от много фактори, включително пълния размер на записа (тъй като това е нещо повече от обикновена две полета - име и фамилия), модели на употреба (независимо дали на средния потребител, за да видите един или два записа, или пък да видите всички тях), както и от общия брой на записите. (Ако броя на записите в размер на няколко десетки, лесно можете да изтеглите всички тях, но трябва да се замислим, ако хиляди записи.)

Дефиниране на полета

BoundField ЕВРОВОК може да се използва за задаване на свойства като заглавие на текст, форматиране поведение низ редактиране и т.н. В допълнение, можете да използвате ShowHeader собственост. Когато тя е фалшива, тя принуждава DetailsView изключи заглавният текст от низа, а областта се двете колони.

полета на модела - не е единствената част на гледания, което наследява елемента DetailsView. Той също използва подобен набор от стилове, подобен набор от събития и подобен модел редактиране.

операция запис

Когато кликнете върху Delete (Изтриване) изтриване операция се извършва веднага. Въпреки това, когато е готово кликнете върху бутона Edit (Редактиране) или Insert (Insert), на DetailsView отива в режим на вмъкване или редактиране. Формално DetailsView поддържа три режима (представлявана DetailsViewMode списък). Тези режими са само за четене, редактиране и Insert. Текущият режим може да бъде определена по всяко време, като проверите CurrentMode собственост. и промените режима може ChangeMode () повикване. С DefaultMode свойства могат да създават DetailsView, която винаги започва в редактирате или в режим на вмъкване.

В DetailsView режим на вмъкване винаги използва стандартен тип текст полета контроли - същите като GridView. За по-голяма гъвкавост при редактиране може да се приложи елемент контрол FormView.

Контроли и DetailsView FormView

Ако прехвърлите DetailsView в режим на редактиране, за да запишете промените и след това преминете към нов рекорд, като се използват бутоните за управление на страницата, на DetailsView е в режим на редактиране. Ако не се изисква такова поведение може да отговори на събитието програмни обръщения метод PageIndexChanged и ChangeMode (), за да го върне в режим само за четене.

Ако имате нужда от максимална гъвкавост на шаблони, шаблона осигурява само контроли FormView за показване и редактиране на един запис. Грейс FormView шаблон модел е, че той е доста пълно отговаря TemplateField модел в гледания. Това означава, че можете да работите със следните формуляри: