C# - Egyedi naptár feliratok készítése web oldalra

forráskód letöltése
ASP.NET-es alkalmazásainkban ha használjuk a Calendar kontrolt, akkor ezzel megjeleníthetünk egy naptárat a web oldalon. Mellékelt cikkből viszont azt is megtudhatjuk, hogy miként érhetjük el, hogy a naptár celláiban a nap sorszámai helyett (vagy mellett) egyéb, tetszőleges feliratok is megjelenjenek.
A megoldás a DayRender eseményben rejlik. Ezt felhasználva a kapott "e" paraméter rendelkezik két olyan property-vel, melynek segítségével megtudhatjuk, hogy az adott cellához aktuálisan melyik dátum tartozik, illetve megadhatjuk azt, hogy szerintünk milyen feliratnak kellene megjelennie. Itt tulajdonképpen bármilyen szöveget, vagy tetszőleges HTML kódot is megadhatunk, tehát naptárunkat kiegészíthetjük akár úgy is, hogy egyes napokhoz más jellemzőket is rendelünk, vagy akár egy adatbázissal is összekapcsolhatjuk és onnan is vehetünk értékeket az egyes napokhoz.
Az egyik property tehát a Day, mely CalendarDay típusú és az alábbi property-ket tartalmazza:
  • Date: DateTime típusban megadja, hogy a naptár adott cellájához éppen melyik dátum tartozik
  • DayNumberText: megtudhatjuk a nap sorszámát sztringként
  • IsOtherMonth: igaz, ha a cella nem az aktuális hónaphoz tartozik
  • IsSelectable: igaz, ha a cella kiválasztható
  • IsSelected: igaz, ha a cella kiválasztott
  • IsToday: igaz, ha a cella a mai napot tartalmazza
  • IsWeekend: igaz, ha a cella a hétvégéhez tartozik÷
A másik property-je az "e" paraméternek a Cell lesz, mely TableCell osztály típusú. Ennek Text property-jén keresztül adhatjuk meg, hogy a cellában milyen szöveg jelenjen meg. E szövegben HTML kódot is használhatunk szükség esetén.
Mellékelt példában minden cellába beírjuk a nap számán kívül azt is, hogy melyik hónapról van szó.
    private void Calendar1_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
    {
      e.Cell.Text = e.Day.Date.ToString("MMM") + "<br>" + e.Day.DayNumberText;
    }