ASP.NET Calendar Postback nélkül

A Calendar egy klasszikus vezérlő az ASP.NET hőskorából: csak egy kattintás és van egy naptárunk, ami viszont ronda HTML-t generál, és csak Postbackelni tud. Emiatt persze a saját kiválasztott dátumának a tárolásához is ViewSate kell. Én egy olyan Calendarra vágytam, ami az URL-be dobja fel a kiválasztott napott. A megoldást az eredeti kiválasztási mód (SelectionMode) kikapcsolásában és naponként egy új link elhelyezésében találtam meg:

<asp:Calendar ID="naptar" runat="server"
    SelectionMode="None"
    OnDayRender="naptar_DayRender" />
protected void naptar_DayRender( object sender, DayRenderEventArgs e )
{
    e.Cell.Controls.Clear();
    HyperLink link = new HyperLink();
    link.NavigateUrl = string.Format( "?datum={0}", e.Day.Date.ToString( "yyyy-MM-dd" ) );
    link.Text = e.Day.DayNumberText;
    e.Cell.Controls.Add( link );
}




Dávid Zoltán

Dávid Zoltán Mérnök Informatikusként végeztem a BME-n, jelenleg webfejlesztéssel és gépi tanulással foglalkozom.

2010.05.24. 22:40:05 | Permalink | Hozzászólások: 0 | Tárgyszavak:


  • OnEsemeny a markupban

    Dávid Zoltán A legnagyobb agyvérzés az ASP.NET-ben, hogy a szerveroldali események egy részét sikerült CSONTRA UGYANÚGY elnevezni, mint a rég bevált, használt és sok esetben megkerülhetetlen javascript eseményeket. Tovább »
  • Hova kattintottam?

    Balássy György (MS RD, ASP.NET MVP, MCTS) Gyakori feladat, hogy megjelenítjük az adatokat egy weboldalon és szeretnénk biztosítani a felhasználónak, hogy valamelyik rekordra kattintva ilyen vagy éppen olyan műveletet végezzen el az adott soron. Valami oknál fogva a szokásos fejlesztői hozzáállás a feladathoz az, hogy a gomb kattintás eseménykezelőjében elkezdjük keresgélni, hogy vajon melyik rekordra kattinthatott szerencsétlen felhasználó és ilyenkor az ember hajlamos elveszni a SelectedItem, SelectedIndex, DataItem, DataRow, DataRowView, DataRowItem és társai között. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások