Page.Theme a jeho změna po stisknutí tlačítka – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Page.Theme a jeho změna po stisknutí tlačítka – .NET – Fórum – Programujte.comPage.Theme a jeho změna po stisknutí tlačítka – .NET – Fórum – Programujte.com

 

Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
3. 12. 2008   #1
-
0
-

Ahoj.
Potřeboval bych po stisknutí tlačítka změnit téma. Píše mi to ale chybu, že téma lze změnit pouze při nahrávání webu v události Page_PreInit.


Prosím nevíte jak na to, abych téma změnil po stisknutí tlačítkaa?


Díky

Nahlásit jako SPAM
IP: 85.207.101.–
3. 12. 2008   #2
-
0
-

To Anonymní uživatel : A co se zkusit řídit tou chybou?

BTW: ASP.NET themes nejsou nejlepší cestou ke skinování aplikace (tedy v případě, že se nejedná pouze o změnu CSS, obrázků, apod).

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
3. 12. 2008   #3
-
0
-

Jedná se pouze o změnu CSS souboru a obrázků...

Řídit se chybou je dobrý nápad.... Zkoušel jsem, ale nějak nevím jak...

Nahlásit jako SPAM
IP: 85.207.101.–
3. 12. 2008   #4
-
0
-

To Anonymní uživatel : Naposled, co tu někomu dávám kód.

protected void Page_PreInit(object sender, EventArgs e)

{
switch (Request.QueryString["theme"])
{
case "Blue":
Page.Theme = "BlueTheme";
break;
case "Pink":
Page.Theme = "PinkTheme";
break;
}
}
Prostě odchytím tu událost a změním skin.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
3. 12. 2008   #5
-
0
-

Díky

Nahlásit jako SPAM
IP: 85.207.101.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #6
-
0
-


Mám master page, ve které si uživatel může vybrat některé z témat. Výběr mám udělaný v DropDownList. Vedle toho mám tlačítko.

Když uživatel stitskne tlačítko, změní se vzhled.

Na událost stisknutí tlačítka mám tento kód:

Session.Add("ThemeName", this.ThemeList.Text);


Dále mám content page Default.aspx

a v ní kód:

protected void Page_PreInit(object sender, EventArgs e)
{
object b = Session["ThemeName"];
string s = (string)b;
Page.Theme = s;
}


bohužel to nějak nefunguje. Je to první webová aplikace kterou v ASP.NET dělám a v tomto případě bych potřeboval trochu postrčit.

Díky

Nahlásit jako SPAM
IP: 85.207.101.–
4. 12. 2008   #7
-
0
-

To Anonymní uživatel : NullReferenceException? Pak už víš, kde je chyba -> viz. jiná diskuze, hádám, že jsi tentýž anonym.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #8
-
0
-

Asi na tom už nechám nervy... Od včerejška se snažím to rozchodit a stále nic....

Kde přesně je chyba??? v Session, v proměné, něbo někde úplně jine???

Nahlásit jako SPAM
IP: 85.207.101.–
4. 12. 2008   #9
-
0
-

To Anonymní uživatel : Já nevim. Musíš toho napsat víc.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #10
-
0
-

Takže v master page mám:



using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.IO;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ThemeButton_Click(object sender, EventArgs e)
{
Session.Add("ThemeName", this.ThemeList.Text);
}

- po stisknutí tlačítka se vybere z DropDownLisu název tématu ( tedy to this.ThemeList.Text; ) a uloží se do session ThemeName

a potom mám stránku Default.aspx


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class _Default : System.Web.UI.Page
{
protected void Page_PreInit(object sender, EventArgs e)
{
object b = new Object();
b = Session["ThemeName"];
string s = (string)b;
Page.Theme = s;
}
protected void Page_Load(object sender, EventArgs e)
{
}
}


fakt už nevím co s tím mám dělat. Podle mě jsou session dobře, ale bordel je v těch proměných. Zkoušel jsem od stringu až po object a bez výsledku...


Když to spustím, chybu to nehlásí, ale žádné téma se taky neimportuje....

Nahlásit jako SPAM
IP: 85.207.101.–
4. 12. 2008   #11
-
0
-

To Anonymní uživatel : Tebou uvedený příklad je plně funkční, ale je tam mnoho nedostatků. Zamysli se nad svým postupem a taky nad kódem. Je vidět, že ti chybí teorie (mnoho lidí si myslí, že to jde i bez ní, ale opak je pravdou).

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #12
-
0
-

Tak proč mi to tedy nefunguje??? Na co bych se měl zaměřit???

Nahlásit jako SPAM
IP: 85.207.101.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #13
-
0
-

Teorie mi opravdu chybí. Tohle je první web, který dělám v ASP.NEt

Nahlásit jako SPAM
IP: 85.207.101.–
4. 12. 2008   #14
-
0
-

To Anonymní uživatel : Je jedno, zda je to první nebo padesátý web. Bez teorie je to stále totéž. Pokud ti to nehází žádnou výjimku, tak se zkus podívat, co se tam vlastně děje, jstli se načte skin (případně jakej a jestli není stejnej jako ten předchozí). Musíš si poradit sám.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #15
-
0
-

No, sám už se s tím zkouším poprat 2 dny. Skin se mi vůbec do webu nenačte

Nahlásit jako SPAM
IP: 85.207.101.–
4. 12. 2008   #16
-
0
-

To Anonymní uživatel : No, tak si pusť debugger a odkrokuj si jednotlivý části kódu, ať víš, co se děje nebo neděje. Já tě tady fakt nebudu vodit za ručičku.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #17
-
0
-

Ještě bych chtěl požádat o radu, co se týká speciálních adresářů v ASP.NET. Neznáš prosím nějaký odkaz, kde se píše, který k čemu přesně slouží???

Zkoušel jsem google slovo ASP.NET directory ale nic pořádného jsem nenašel.


A ještě, mám chybovou stránku ( co jsem sám vytvořil - 404 ) a chtěl bych ji dát do aplikace. Vím že se to dává přes web.config, ale nevím co a nevím kam..

Nahlásit jako SPAM
IP: 85.207.101.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #18
-
0
-

Každý někdy začíná....

Nahlásit jako SPAM
IP: 85.207.101.–
4. 12. 2008   #19
-
0
-
Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #20
-
0
-


To Anonymní uživatel [#91091]: CustomErrors si najdi na googlu. Ty speciální adresáře rovněž (nauč se najít správnou kombinaci klíčových slov) link (v novém okně ) nebo si prostě přelož jejich názvy.

BTW: Ano, každý jednou začíná, ale jde o to jakým způsobem.



Díky

Nahlásit jako SPAM
IP: 85.207.101.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #21
-
0
-

Takže už z tebe nic nedostanu ;-)

Nahlásit jako SPAM
IP: 85.207.101.–
4. 12. 2008   #22
-
0
-

Já už nemám, co bych k tomu řekl. Když nevidím problém, tak nemohu hledat jeho řešení.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #23
-
0
-

No, problém tam být musí, když to nepracuje tak jak by mělo...

Téma to nemění...

Nahlásit jako SPAM
IP: 85.207.101.–
4. 12. 2008   #24
-
0
-

To Anonymní uživatel : Problém tam je určitě, když ti to nefunguje, ale já ho nevidím (kdyby to házelo nějakou výjimku, případně kdyby jsi objevil něco v debuggeru, tak možná).

BTW: Máš zapnuté session proměnné?

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #25
-
0
-

jako v prohlížeči?

Nahlásit jako SPAM
IP: 85.207.101.–
4. 12. 2008   #26
-
0
-

To Anonymní uživatel : Ne, těsně vedle. Session proměnné jsou uložené na serveru. Ale jako odpověď to stačí.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #27
-
0
-

I mistr tesař se někdy utne :-)

Nahlásit jako SPAM
IP: 85.207.101.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #28
-
0
-

Tet se nabízí otázka jak zapnout session na serveru :-D

Nahlásit jako SPAM
IP: 85.207.101.–
4. 12. 2008   #29
-
0
-

To Anonymní uživatel : No pravděpodobně jsou zapnuté, jinak by to skončilo výjimkou (mám takovej pocit). V každým případě se podívej, jestli ten objekt získanej ze session není náhodou null (v tomto případě nedojde k výjimce).

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #30
-
0
-

Byly shodou okolností vypnuté. Ve web.config jsem je zapnul a frčí to.

Ještě se zeptám, je dobré k tomuto účelu, tj ukládání nastavení tématu používat session?

Nahlásit jako SPAM
IP: 85.207.101.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #31
-
0
-

nebo se zeptám ještě jinak, nevadí, když budu k tomuto účelu používat session?

Nahlásit jako SPAM
IP: 85.207.101.–
4. 12. 2008   #32
-
0
-

To Anonymní uživatel : Pokud jde o dočasnou volbu (v rámci tvé aplikace), tak to lze použít.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 12. 2008   #33
-
0
-

Díky

Nahlásit jako SPAM
IP: 85.207.101.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý