Zobrazení stránky podle stylů   zodpovězená otázka

ASP.NET WebForms

Dobrý den,

chtěl bych se zeptat, zda se dá nějak zobrazovat stránka v master page podle aktuálního stylu. Například hlavička s nějakým rozvržením menu nebo patička s různými texty apod.

Některé styly se tak od sebe liší, že by to bylo určitým usnadněním.

Děkuji za odpověď.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jestli Vám jde o to, že máte několik stylových podsložek třeba default, defaultModra ... (ve složce App_Theme), a potřebujete tuto grafiku přepínat podle potřeby stránky, je to možné udělat v události vytváření stránky Page_PreInit třeba takto:

protected void Page_PreInit(object sender, EventArgs e)
    {
        this.Theme = "Moje_Tema";
    }

Navíc vlastnost Theme direktiva <%@ Master %> nemá, takže téma musíte nastavovat přímo ve stránce buď v kódu, jak jsem psal nebo v direktivě <%@ Page Theme="Moje_Tema" %>

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ideální je v tomto případě dědit všechny stránky od společného předka, který tohle řeší, abyste neměl stejný kód ve 100 stránkách a při změně to nemusel měnit na všech místech.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

S tím plně souhlasím. V tom případě jen jednoduše přidejte do složky App_Code (Pokud neděláte v projektu) třídu BasePage.cs kterou podědíte od System.Web.UI.Page takže by to mohlo vypadat nějak takto:

//Deklarace knihoven
...
namespace XX.NazevAplikace.UI
{
   public class BasePage : System.Web.UI.Page
   {
      protected override void OnPreInit(EventArgs e)
      {
      //Zde napsat vše, co je pro všechny stránky společné.
      }
   }
}

A pak už jen jednoduše ve stránce podědíte od BasePage a kdyby se Vám stalo, že něco potřebujete změnit, změnu provedete jen v této BasePage a projeví se ve všech stánkách.

PS:Deklarace ve stránce by poté měla vypadat takto:

namespace XX.NazevAplikace.UI
{
   public partial class Default : BasePage
   {
      protected void Page_Load(object sender, EventArgs e)
      {

      }
   }
}

Omlouvám se jestli jsem něco napsal špatně, psal jsem to z hlavy a nemám to kde pro kontrolu ověřit. Ale snad tam není chyba

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jde mi spíše o to, že když rozdělím asp.net stránku do jednotlivých divů, tak jsem schopen ji podle aktuálních témat formátovat. Nejsem už však schopen jednotlivé oblasti mezi sebou například přehazovat nebo přesouvat. Absolutní pozice by to sice mohly vyřešit, ale tohle mi nepřijde příliš šikovné.

V asp.net nejsem až tak zběhlý, tak se tedy ptám, jak se takové věci standardně řeší.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud Vám jde o přesouvání částí stránky jak potřebujete, nabízí ASP.NET technologii Web Parts(webové části), která umožňuje pohybovat s webovými částmi jak potřebujete. Bohužel je to trochu obsáhlejší na to zde popsat, jak s tím přesně pracovat takže budete muset zkusit pohledat na webu nebo v nějaké literatuře.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback