czwartek, 21 stycznia 2010

Web Parts - w ASP.NET - przykład C# (Csharp) [PL]

Promuj

W ramach uzupełnienia teorii dotyczącej mechanizmu Web Parts, tym razem pojawi się przykład, w którym na prostej stronie osadzone kontrolki Web Parts.

W tym celu należy stworzyć prostą stronę o zawartości podobnej do:

<div style="clear:both;" id="head">
</div>
<div style="width: 400px; float: left; height: auto;" id="left">
</div>
<div style="width:auto ;float: left; height: auto;" id="right">
</div>
<div style="clear:both;" id="footer">
</div>
Teraz dodajemy najważniejszy element, czyli WebPartManager (uwaga na początku formularza, przed innymi wystąpieniami elementów związanych z WebParts)
Następnie czas na dodawanie stref do odpowiednich obszarów:
  • do wszystkich oprocz lewego ("left") dodajemy WebPartZone
  • do lewego ("left") dodajemy EditorZone (dodatkowo: AppearanceEditorPart, LayoutEditorPart) i CatalogZone
Dodatkowo dodajemy też kontrolkę typu DropDownlist, przy pomocy której będzie można wybierać wygląd, wypełniamy ją odpowiednimi elementami:
void Page_Init(object sender, EventArgs e)
{
    WebPartManager _manager = WebPartManager.GetCurrentWebPartManager(Page);
    String browseModeName = WebPartManager.BrowseDisplayMode.Name;
    DropDownList1.Items.Clear();
    //wypełniamy listę wyboru trybu wyswietlania na podstawie dostepnych trybow
    foreach (WebPartDisplayMode mode in _manager.SupportedDisplayModes)
    {
  String modeName = mode.Name;
  //make sure a mode is enabled before adding it.
  if (mode.IsEnabled(_manager))
  {
   ListItem item = new ListItem(modeName, modeName);
   DropDownList1.Items.Add(item);
  }
    }
    //wybieramy aktualnie wybrany tryb 
    ListItemCollection items = DropDownList1.Items;
    int selectedIndex = tems.IndexOf(items.FindByText(_manager.DisplayMode.Name));
    DropDownList1.SelectedIndex = selectedIndex;
}
Wypełniamy zdarzenie on change dla DropDownList:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
     WebPartManager manager = WebPartManager.GetCurrentWebPartManager(Page); //pobieramy glowny manager
     WebPartDisplayMode mode = manager.SupportedDisplayModes[DropDownList1.SelectedValue]; //na podstawie wyboru na liście wybieramy tryb wyświetlania
     if (mode != null) manager.DisplayMode = mode; // jeżeli ustawiliśmy jakiś tryb to go wlaczamy
}
Teraz można pododawać kontrolki do odpowiednich stref. Można to zrobić nawet poprzez proste przeciągnięcie zwykłej kontrolki (standardowej z ASP.NET, np. Label i umieszczenie takiej kontrolki w odpowiedniej strefie.

Na końcu chciałbym dodać, że kod z przykładu dostępny jest tutaj.

Promuj

1 komentarz:

Posty powiązane / Related posts