Avatar billede digitalsoul Nybegynder
13. oktober 2005 - 14:37 Der er 4 kommentarer og
1 løsning

Problemer med page_load

Hejsa.

Jeg er i fuld gang med at lave noget kalender, men har lidt problemer med at få den til at vise mine aftaler når jeg loader siden ind.

Den hilighter fint de datoer der er aftaler på, og når man går ind på dem så viser den også aftale subjecten, men den nuværende dag kommer tingene ikke frem på før jeg har bevæget mig væk fra den og så tilbage. Så viser den tingene.

Smider lige noget af det kode jeg bruger til tingene:
Avatar billede digitalsoul Nybegynder
13. oktober 2005 - 14:41 #1
public partial class sc01_calendar_main
{
    private DateTime today; //Nuværende dato
    private DateTime selectedDate; //Den dato der vælges når man trykker på en dato i kalenderen
    private Object[] dates; //Array hvori alle mine dato objekter ligger i

    //Metode til at håndtere klik på kalenderen
    protected void Date_Selected(object s, EventArgs e)
    {
        DateLabel.Text = SCCalendar.SelectedDate.ToShortDateString();
        selectedDate = SCCalendar.SelectedDate;
    }

protected void Page_Load(object sender, EventArgs e)
    {
            dates = ReturnApps(); 
            SCCalendar.TodaysDate = today;
            SCCalendar.SelectedDate = SCCalendar.TodaysDate;
            DateLabel.Text = SCCalendar.SelectedDate.ToShortDateString();
}

    /// <summary>
    /// Method to generate html tables where appointment is shown
    /// </summary>
    /// <returns>Returns tables with appointments in them</returns>
    protected string ShowAppointments()
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();

        string[] times = { "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10" ,"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"  };
        //int[] times = { 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 };

        foreach (string time in times) {
            sb.Append("  <tr>\r\n");
            sb.Append("        <td rowspan=\"2\" class=\"Calendar_time\"><span class=\"calendar_time_first\">" + time + "</span><span class=\"calendar_time_last\">00 </span></td>\r\n");
            sb.Append("        <td class=\"calendar_appointment\">" + GetAppointments(time) + "</td>\r\n");
            sb.Append("  </tr>\r\n");
            sb.Append("    <tr>\r\n");
            sb.Append("            <td class=\"calendar_appointment_line2\">2</td>\r\n");
            sb.Append("    </tr>\r\n");
           
        }

        return sb.ToString();
    }

    protected String GetAppointments(String time)
    {

        DateTime DailyApp = selectedDate;//System.DateTime.Now; //Dato til at sammenligne med

        foreach (Appointment appointment in dates)
        {
            DateTime temp = ToDateTime(appointment.Eventdate); //Omskriver eventdatoen til et DateTime format

            if (DailyApp.Year.Equals(temp.Year) && DailyApp.Month.Equals(temp.Month) && DailyApp.Day.Equals(temp.Day) && temp.Hour.Equals(int.Parse(time)))
            {
                return "<a href=\"#\" class=\"\">" + temp.Hour + ":" + temp.Minute + " - " + appointment.Subject + "</a>";
            }
        }
        return "&nbsp;";
    }

    /// <summary>
    /// Dayrender method which hilights dates with events on them
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void HilightAppointments(object sender, DayRenderEventArgs e)
    {
        dates = ReturnApps();
       
        CalendarDay d = null;
        TableCell c = null;

        d = e.Day;  //Datoen
        c = e.Cell; //Cellen

        foreach (Appointment appointment in dates)
        {
            DateTime date = ToDateTime(appointment.Eventdate);
            date = new DateTime(date.Year, date.Month, date.Day);
            if (date.Equals(d.Date))
            {
                c.Font.Bold = true;
                c.BackColor = System.Drawing.Color.LightGray;
            }
        } 
     
    }
Avatar billede digitalsoul Nybegynder
13. oktober 2005 - 14:41 #2
Som jeg har forstået det, så bliver dayrenderen triggert først, og så alt det andet efterfølgende?
Avatar billede digitalsoul Nybegynder
13. oktober 2005 - 14:44 #3
Kan godt se de kode ikke er specielt godt opsat, så filen ligger her:

http://dev.digitalsoul.dk/sc01_calendar_main.aspx.cs
Avatar billede digitalsoul Nybegynder
13. oktober 2005 - 14:48 #4
Typisk at man finder svaret efter man har postet et spørgsmål, den kan selvfølgelig ikke vise tingene ved load. Da min selectedDate ikke bliver sat når siden loader :)
Avatar billede digitalsoul Nybegynder
22. oktober 2005 - 07:39 #5
Svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester