V prvním díle jsme vytvořili projekt pro webovou část a popsali jsme soubory, které tato část obsahuje. Dnes si vytvoříme svou první webovou část v prostředí Visual Studia .NET a následně se podíváme na její zobrazení na stránce Sharepointu.
reklama
Web Parts a ASP.NET Custom Controls
Před psaním vlastního kódu by jsme si nejdřív měli objasnit strukturu Web Parts. Jestliže se na to podíváme zjednodušeně, webové části jsou hodně podobné Custom Controls z Asp .NET. Takže pro ty, kteří už mají zkušenosti s psaním Custom Controls bude psaní Web Parts hračkou. Tím že web parts jsou podobné Custom Controls a ne User controls je patrné, že si je nezobrazíte v design modu VS .NET. Všechny Custom contols jsou dědeny z System.Web.UI.WebControls.WebControl a Webcontrol z System.Web.UI.Control tříd. Jestli-že chcete generovat HTML kód musíte nejdřív přepsat v bazové tříde metodu RenderContents. Tato metoda poskytuje objekt HtmlTextWriter, který je implementován jako vstupní parametr metody a je vhodné jej použít při generování výstupního HTML kódu namísto spájení. Zakladním rozdílem mezi Web Part and a custom control je, že namísto třídy, která je zdědena z WebControl, je použita jako base triada Microsoft.SharePoint.WebPartPages.WebPart class, která má stejného předka jako webcontrol. Z toho nám vyplyne, že když tvořime webovu část, na renderování požijeme přepsání metody RenderWebPart namísto RenderContents. Web parts implementují veškeré výhody ASP.NET custom controls, co se přejavuje například drag and drop funkcionalitou. V praxi to znamená, že uživatel si může zobrazit danou webpart na stránce pouhým přetáhnutím komponenty z galerie do přislušné Web Part Zones. Další výhodou je, že webová část má dva módy zobrazení (shared – pro vsechny uživatele a personal, což je vaše osobní nastavení). Ukázka jednoduché webové částí. Přidáme serverový prvek Label a do nej zadáme například „Ahoj“.
///
/// Metoda pro Rendering
///
/// Vstupním parametrem je HtmlTextWriter output
protected override void RenderWebPart(HtmlTextWriter output)
{
//Vytvořime prvek Label
Label myLabel = new Label();
//Zapíšeme do nej text
myLabel.Text = "Ahoj";
//Přidáme prvek do stránky
this.Controls.Add(myLabel);
//Vyrenderujeme Html výstup
myLabel.RenderControl(output);
}
Nastavení Output Path vlastností ve Visual Studio .NET
Před provedením samotného buildu projektu si ještě nastavíme cestu kam Visual Studio umístí soubory MyWebPart1.dll and a MyWebPart1.pdb. Subory musí být umístěné v adresáři Bin, kde je Sharepoint naistalován. Při defaultní instalaci je to wwwroot/bin.
1. V Solution Exploreri, right-click na projekt a vybrat položku Properties.
2. V levém navigačním panelu klinout na Configuration Properties a následně na položku Build.
3. Vyberte vlastnost Output Path a nasměrujte ji na Bin adresář
4. Cesta bude překonvertována z absolutní na relativní
V připadě, že projekt vyvíjite vzdáleně je cesta: \\server_name\InetPub\wwwroot\bin
Vytvoření Bezpečního prvku - „SafeControls“
Před vložením webové části na stránku je ještě nutno říct serveru, že vaše webpart je důvěryhodná (trust). Tuhle deklaraci provedete v sekci SafeControls section vo web.configu. Je potřeba si uvědomit, že každý SaveControls se musí shodovat s údaji identické Assembly, ve které může být jedna nebo více webových částí.
Tabulka Elementu <SafeControl>
| Atributy SafeControl |
Popisek |
| Assembly |
Jméno assembly, ve kterém je umístěna jedna nebo více webparts. V našem případě je to MyWebpart (rovnaký název musí být i v .dwp souboru v elementu Assembly). Assembly attribut věčšinou ještě obsahuje verzi, kulturu a veřejný klíč. |
| Namespace |
Obsahuje název namespace pro danou třídu webové části V našem připadě je to MyWebPart (stejný název musí byt .dwp souboru v elementu TypeName ) |
| TypeName |
Daný attribut určuje jméno třidy webové části. Nejjednodušší je dát hvězdičku (*), která určuje všechny webpary v dané assembly a pro daný namespace. Vyhodou je, že když přidáte další webpart, která dodrží konvence nemusíte už nic měnit ve web.configu. |
| Safe |
Výchozí hodnota je true. |
Příklad implementace ve web.configu
<SafeControls>
...
< SafeControl Assembly="MyWebpart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=780991e9bd9ec985" Namespace="MyWebpart" TypeName="*" Safe="True">
...
</SafeControls>
V připadě že jste uvedený postup neudělali správně, při vložení webparty dostanete následující chybovou hlášku.
Zobrazení Web Party na stránce v sharepointu
Pro zobrazení Web Party na stránce musíte importovat .dwp soubor. Uděláte to tak, že v pravém horním rohu kliknete na Modify Shared Page, pak na Add Web Parts from the menu a nakonec vyberete Import (viz. obrázek).
S pomocí tlačítka browse najdete váš .dwp soubor a uploadnete ho na server.
Po úspěšném uploade na server se vám zobrazí vaše webpart a teď už nezbívá nic jineho jen ji přetáhnout na stranku.
A co dále?
V dnešním díle jsme si popsali zakladné vlastnosti webparty a její následné zobrazení na stránce. V dalších dilech se podivame na tvorbu složitějších webparts, tvorbu vlastních toolpartov, debugging, instalaci atd….