Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET.
Web Parts są komponentami z częścią funkcjonalności, które można osadzić na stronie i zarządzać nimi. Web Party dają użytkowników swobodę w zarządzaniu wyglądem strony (głównie elementami funkcjonalnymi jakie znajdują się na stronie).
ASP.NET posiada zcentralizowany mechanizm do zarządzania obsługą Web Partów. Klasy związane z Web Partami znajdują się w przestrzeni nazw System.Web.UI.WebControls.WebParts. Najważniejsze elementy z tej przestrzeni to:
- WebPartManager – jest wymaganą kontrolką, na której mają znajdować się Web Party, ona zarządza całą obsługą Web Partów, ostatecznie nie ma wizualnej reprezentacji w htmlu wysyłanym użytnikowi
- WebPart – jest klasą bazową dla wszystkich Web Partów
- CatalogPart – jest wizualnym elementem, który umożliwia zarządzanie grupą Web Partów, które mogą zostać dodane do aplikacji webowej, grupuje Web Party dla całej aplikacji, a nie pojedynczej strony
- PageCatalogPart – jest podobną kontrolką do CatalogPart, tylko z tą różnicą, że grupuje Web Party możliwe do wykorzystania dla jeden konkretnej strony, a nie całej aplikacji webowej
- EditorPart – kontrolka umożliwia użytkownikom zmienianie właściwości Web Partów
- WebPartZone – kontrolka określa obszar strony, w obrębie którego mogą być dodawane Web Party
Aby móc wykorzystać Web Party na stronie trzeba przede wszystkim dodać dwa elementy: WebPartManager oraz WebPartZone (gdzie do elementu ZoneTemplate kontrolki WebPartZone dodajemy Web Party):
1: <asp:WebPartManager ID=”WebPartManager” runat=”server”>
2: </asp:WebPartManager>
3: <asp:WebPartZone ID=”WebPartZoneVendor” runat=”server” HeaderText=”Vendor Aggregate” style="width: 6SOpx; height: auto”>
4: <ZoneTemplate>
5: <!—-Add web parts to the zone-->
6: </ZoneTemplate>
7: </asp:WebPartZone>
Samego Web Parta programista może stworzyć na trzy sposoby: stworzyć nową kontrolkę użytkownika, wykorzystać istniejącą kontrolkę ASP.NET (np. Label) i w niej osadzić elementy Web Party oraz stworzyć klasę, która dziedziczy po klasie WebPart (ostatnia metoda zostanie szczegółowiej opisana w jednej z późniejszych lekcji).
Pierwszą metodą jest wykorzystanie kontrolki użytkownika. Aby z kontrolki użytkownika zrobić Web Party, wystarczy po prostu ją dodać do ZoneTemplate.
1: <asp:WebPartZone ID=”WebPartzone2” runat=”server” HeaderText=”Fabrikam”
2: style=”width: 350px; float: left; height: auto;”>
3: <ZoneTemplate>
4: <ucl:VendorWebPart ID=”VendorWebPartl” runat=”server” title=”Fabrikam” />
5: </ZoneTemplate>
6: </asp: Web PartZone>
Mechanizm Web Partów w ASP.NET sam zadba o to, aby wszystko działało poprawnie. Przed wykorzystaniem kontrolki na stronie trzeba dodać dyrektywę Register na początku pliku w celu rejestracji kontrolki.
1: <%@ Register src=”VendorWebPart.ascx” tagname=”VendorWebPart” tagprefix=”ucl” %>
Drugą metodą jest wykorzystanie istniejącej kontroli ASP.NET. Do ZoneTemplate dodajemy na przykład kontrolkę Label, a w jej środku definiujemy wygląd Web Party (tak jak to widać niżej na listingu).
1: <asp:WebPartzone ID=”WebPartzonel” runat=”server”
2: HeaderText=”Vendor Aggregate” style”width: 700px; height: auto”>
3: <ZoneTemplate>
4: <asp: Label ID=”Label3” runat=”server” Text=”" title=”Vendor Total's”>
5: <div style=”margin-top: l2px; margin-bottom: 20px;
6: line-height: 30px; font-size: 12pt”>
7: Total Active Users: <a href=”#”>21</a>
8: <br />Total transactions today: <a href=”#”>166</a>
9: <br />Revenue trades to-date: <a href=”#”>$34,450</a>
10: </div>
11: </asp:Label>
12: </ZoneTemplate>
13: </asp:WebPartZone>
Web Party na stronie mogą być wyświetlany w kilku różnych widokach. Każdy widok charakteryzuje się różnym zachowaniem Web Partów oraz tym co można z Web Partami zrobić. W celu zmiany widoku wystarczy zmienić w kodzie behind właściwość DisplayMode WebPartManagera znajdującego się na stronie.
1: WebPartManagerl.DisplayMode = WebPartManagerl.SupportedDisplayModes[”Browse”];
Dopuszczalne wartości to:
- BrowseDisplayMode – standardowy sposób wyświetlania strony, jest on domyślnie ustawiony
- DesingDisplayMode – w tym widoku użytkownik może zmieniał położenie Web Partów na stronie
- EditDisplayMode – podobnie jak DesingDisplayMode umożliwia użytkownikowi zmianę położenia Web Partów. Dodatkowo za pomocą elementu Edit z menu Web Parta użytkownik może zmienić właściwości Web Parta, aby to zrobić na stronie musi znajdować się kontrolka EditorZone
- CatalogDisplayMode – w tym widoku użytkownik może dodać nowe Web Part na stronę (wymaga jest kontrolka CatalogZone na stronie)
- ConnectDispalyMode – ten widok umożliwia użytkownikowi definiowanie połączeń miedzy Web Partami (np. w jednym Web Parcie użytkownik podaje kod pocztowy swojej miejscowości, a inny Web Part wyciąga za pomocą połączenia ten kod i wyświetla informacje specyficzne dla danej miejscowości np. pogodę) – wymagana na stronie jest kontrolka ConnectionZone
Mechanizm Web Partów jest bardzo rozbudowany, w tym artykule zostały przedstawione podstawowe informacje. Po więcej informacji odsyłam do artykułu na MSDNie.