Archief - [ASP.NET] Styling van een Calendar object

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

KiPpIe

Legacy Member
Voor een website wordt ik verwacht een "evenementenkalender" te maken in een sidebar. Hiervoor gebruik ik een custom control afgeleid van een Calendar die dan zijn info uit een databank haalt en invoegt in de cellen.
Tot hiertoe lukt alles goed, maar ik zou de Calendar graag kunnen stylen via een extern css bestand.
Ik kan van een hoop dingen wel de "CssClass" instellen (bv: CurrentDay.CssClass = "cToday";), maar er zijn ook een heleboel dingen waar ik gewoon niet aan kan.

Zo heeft hij bijvoorbeeld automatisch een "Style="border: 1px solid black"" rond heel het object staan. Dit kon ik nog wel aanpassen door in mijn code bij de constructor borderstyle=none; te zetten, maar even verder in de gegenereerde html kwam ik dit tegen:

Code:
<td style="background-color: Silver;" colspan="7">
<table cellspacing="0" border="0" style="width: 100%; border-collapse: collapse;" class="cTop">
Hierin komt de maand + vorige/volgende maand knop
</table>
</td>

Zoals je ziet zet hij dus automatisch de background-color op Silver, en er is geen enkele manier waarop ik er aan kan.
Weet er iemand een oplossing waarop ik deze style tags kan doen verdwijnen?
Liefst in de code van de control zelf, zodat ik geen dom-trees moet gaan doorlopen in java ofzo om daar de elementen te verwijderen.

Alvast bedankt voor eventuele hulp

lykmeraid

Legacy Member
kunt ge op uw control niet het volgende doen (ik ben te lui om VS te openen en het zelf te proberen)

control.Attributes.Add("class", "hippekalender");

en dan in uw css file gewoon een extra klasse "hippekalender" maken en daar uw background color enzovoort instellen. Misschien ook mogelijk om via attributes de background color direct in te stellen, is beetje prulwerk. Op die manier heb ik ooit een keer een tabel moeten opmaken, dit lijkt mij alleszins iets in die aard.

KiPpIe

Legacy Member
Het ding is, dan wordt die class attribuut wel ingesteld, maar dat doet al de rest nog altijd niet verdwijnen. En aangezien element styles voorrang hebben op css styles staat het er nog altijd in. Ik kan natuurlijk wel gebruik maken van 'important!', maar ik zou het liefst van al toch nog gewoon die extra style attributes zien verdwijnen.

Daarbovenop komt dan ook nog het feit dat ik attributes wel kan instellen voor bepaalde dingen zoals de kalender zelf, of voor de dagen apart (in dayrender, dan), maar zaken zoals die omringende td hier kan ik blijkbaar niet veranderen.
Dan ook nog het feit dat dit allemaal in de code zou moeten gebeuren terwijl ik liever echt volledige customisatie heb ahv stylesheets.

Toch al bedankt voor het antwoord en het mee nadenken :)

Blaaaa

Legacy Member
hmm,
en eventueel met een skin file werken?
Dan kan je daar ook CSS op gebruiken

bv: Themes In ASP.NET 2.0

Op die pagina heb je:

Code:
<asp:Calendar runat="server" BackColor="White"
              BorderColor="#3366CC" BorderWidth="1px" CellPadding="1"
              DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt"
              ForeColor="#003399" Height="200px" Width="220px">
  <SelectedDayStyle BackColor="#009999" Font-Bold="True"
                    ForeColor="#CCFF99" />
  <SelectorStyle BackColor="#99CCCC" ForeColor="#336666" />
  <WeekendDayStyle BackColor="#CCCCFF" />
  <OtherMonthDayStyle ForeColor="#999999" />
  <TodayDayStyle BackColor="#99CCCC" ForeColor="White" />
  <NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" />
  <DayHeaderStyle BackColor="#99CCCC" ForeColor="#336666" Height="1px" />
  <TitleStyle BackColor="#003399" BorderColor="#3366CC" BorderWidth="1px"
              Font-Bold="True"
              Font-Size="10pt" ForeColor="#CCCCFF" Height="25px" />
</asp:Calendar>

Maar je kan hier ook met een attribuut CssClass in werken normaal. (Is al tijdje geleden dat ik met ASP.NET gewerkt heb)

sanzo

Legacy Member
Je kan die element styles toch gewoon overschrijven? Hangt gewoon af van de volgorde waarin je css wordt geschreven..

KiPpIe

Legacy Member
Blaaaa zei:
hmm,
en eventueel met een skin file werken?
Dan kan je daar ook CSS op gebruiken

bv: Themes In ASP.NET 2.0



Maar je kan hier ook met een attribuut CssClass in werken normaal. (Is al tijdje geleden dat ik met ASP.NET gewerkt heb)

Hmm, ja, maar ik had blijkbaar het probleem dat die zilveren border er vanzelf kwam, ook al zou ik al die verschillende onderdelen een aparte stijl/cssclass geven. Ik heb hier thuis nu wel geen volledige visual studio/IIS en kan het atm dus ook zelf niet allemaal nakijken, maar ik zal wss wel een fout hebben gemaakt.
Toch bedankt voor het opzoeken, ik zal er maandag nog wel een beetje mee spelen. :)

sanzo zei:
Je kan die element styles toch gewoon overschrijven? Hangt gewoon af van de volgorde waarin je css wordt geschreven..

Hoe bedoel je juist?
Als je in het html element zelf een style attribuut toevoegt heeft dit toch sowieso voorrang op stijlen gedefiniëerd in een css bestand?
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan