Jak naprogramovat multibarevnou listu pro jakekoliv rozliseni

Dnes jsem si dal trochu pauzu od toho predelavani starsich Windows Forms programu na WPF, protoze me to ukrutne nebavilo se prodirat kody, o kterych jsem nevedel proc jsem je kdysi tak naprogramoval a premyslel jsem jak trochu ozivit ten svuj web.

Napadlo me ze bych mohl udelat barevnou listu a tu vlozit na kazdou stranku nekde. Naprogramovat cele toto mi trvalo asi 4h.

Prvne co jsem udelal bylo ze jsem si to promyslel a dosel jsem k zaveru, ze by byla hloupost abych tuto listu generoval pro kazdou stranku zvlast a proto jsem se rozhodl, ze jednu barevnou listu budou sdilet vsechny rozliseni.

Pak jsem zacal programovat. Zacal jsem s tridou GeneralHelper. Nejtezsi bylo naprogramovat metodu CalculatePercentOfColorBars, ktera jednorazove pri spusteni webu vypocte podle parametru ktere ji predate sirku v % pro jednotlive barvy a samozrejme se zde priradi kazdemu divu unikatni barva.

U me to sice muze vypadat ze to jsou stejne barvy na pohled, ale staci si je dat pod kapatko a zjistite ze i kdyz se lisi treba jen o “1” tak se lisi. A samozrejme tu je jeste pole colorsColorBar, ktere obsahuje tolik barev, kolik maximalne zadate jako druhy argument metode .

Nezapomente, ze kazda barva tam muze byt jen jednou!

GeneralHelper.cs

Druhe misto kde musite neco dospat je Global.asax. Ten je vzdy v rootu vaseho weboveho projektu – jen tam se bude spravne spoustet pri inicializaci startu vasi webove aplikace.

Global.asax(metoda Application_Start)

Dalsi mistem kde musite neco naprogramovat je trida MultiColorLine. Tato trida zodpovida za vygenerovani odpovidajiciho HTML obsahu s barevnou listou. Tridu HtmlGenerator vam tu davat nebudu, odpovidajici metody si zvladnete jiste naprogramovat sami:

MultiColorLine.cs

Predposledni misto je pak samotna (Master)Page ve ktere zavolate . Ve strance na odpovidajici misto vlozte tento div a popripadne nastylujte podle vlastniho uvazeni:

Neco.Master

Ve code behindu pak dejte nasledujici kod(pouze si upravte jak chcete mit listu sirokou v 1. argumentu), ktery vytvori HTML kod a vlozi vam jej jako vnitrek divu.

Neco.Master.cs

Ve strance, pripadne externim CSS pak musite mit i toto CSS:

Neco.css

Poslednim kodem ktery vam tu dam jsou ty dalsi metody ktere jsem volal, abyste nemuseli tapat, jak je implementovat:

Vysledek?


Default.aspx s barevnou listou


BibleServer s barevnou listou

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.