Avatar billede _et Praktikant
18. juli 2005 - 00:16 Der er 7 kommentarer og
1 løsning

Problem med kalender.

Jeg har en kalender på mit site, som bruges til vælge den dato, man vil se events for. Problemet er bare at kalenderen er et klik "bagefter".

Check det selv her, det er nemmere end at forklarer. (Klik på forskellige datoer, og hold øje med hvordan "Event dato" lige over kalender er bagefter.) :
http://www.roskvist.net

Jeg tror at problemet er i enten min form_load(), eller i min Calendar1_SelectionChanged(object sender, System.EventArgs e)

Her er koden.
http://www.roskvist.net/kode.txt
Avatar billede snepnet Nybegynder
18. juli 2005 - 00:43 #1
hej _et... du har en udkommenteret linie i Calendar1_SelectionChanged der sætter en tekst - er det den du skal have sat?

ellers må du lige give et vink om hvad der er for en kontrol der skal på virkes af kalenderen - og hvordan du pt. gør det.
(har du f.eks. noget databindingskode i din aspx-fil?)

mvh
Avatar billede _et Praktikant
18. juli 2005 - 13:01 #2
De linjer der var udkommenteret, var et levn fra tidligere :-) bruges ikke.

Det der skal ske, er : Når jeg åbner siden, skal pågældende dato og de events, der er aktuelle for den dag, vises i info feltet over kalenderen. Events ligger i en database, og det virker fint fra start. Problemet kommer når jeg klikker på en anden dato - Så skal jeg klikke 2 gange, da den ellers er 1 bagefter, som nævnt.

Men så skal jeg kunne klikke på en anden dag, og så skal info feltet(datagrid) så vise dato og events for den dag.

Dvs. Når jeg klikker på en dag i kalendern, skal Calendar1_SelectionChanged kaldes og SQL sætningen rettes til den dag, jeg har valgt. dernest hentes events og vises i infodata griddet, som events for den dag.

Den eneste kontrol kalenderen, skal påvirke er min SQL sætning.
Den skal rette :
SELECT event AS "Event: + dato der skal rettes" WHERE (dato = "dato der skal rettes")
Avatar billede _et Praktikant
18. juli 2005 - 13:07 #3
Der sker ikke noget på aspx siden, i forhold til kalender funktionen
Avatar billede snepnet Nybegynder
18. juli 2005 - 16:47 #4
mm... du bliver nok nødt til at skære det ud i pap - eller lægger aspx-filen online også.
jeg kan ikke finde noget i din kode der hedder infodata, så jeg regner med at det er den du kontrol du har der hedder Event_grid, men kan du ikke lige bekræfte det?
mvh
Avatar billede _et Praktikant
18. juli 2005 - 23:12 #5
¨Det er den. og den skal bruge datoen fra kalenderen.
Avatar billede snepnet Nybegynder
18. juli 2005 - 23:32 #6
du kalder denne her i page_load:
Calendar1_SelectionChanged(sender, e);

.... det er noget værre noget, og det vil jo sige at du får den kaldt to gange når du klikker på din kalender.

du kan gøre det at du kalder den på :

if(!IsPostBack)
...

men hvis du gerne vil kalde det der sker andre steder end fra handleren - bør du oprette dig et seperat metode til det.

adapteren sørger selv for at åbne og lukke forbindelser - så det skal du ikke gøre i handleren (connection open/clos).

og... så synes jeg ikke du skal have dit dataSet_kalender som en klassevariabel når du udelukkende bruger det i handleren.

kan du ikke prøve at lave de ændringer - og så se hvad der sker?
mvh
Avatar billede _et Praktikant
19. juli 2005 - 14:34 #7
Så virker det. Kom med et svar.

Det har krævet en kraftig pårydning i koden. Jeg ved ikke hvad der var galt. men jeg kiggede lidt på det du skrev og på min mudderkode, og begyndte forfra. Og vola - success

Ps. Er du sikker på at connection.close() ikke er nødvendig? Jeg har en bog om C# og de bruger både .open og .close.

private void Page_Load(object sender, System.EventArgs e)
{
    LB_Client_IP.Text = "Din IP: " + Request.ServerVariables.Get("REMOTE_ADDR");

    if (!IsPostBack)
    {
        Insert_Count();                                // Counter funktion
        Calendar1.SelectedDate = DateTime.Now;        // Sætter kalenderen til idag, hvis det er førstegang på siden.
        Kalender_til_Event();                        // Henter aktuelle dag's Events.
    }
   
    bindData();            // Foretager binding til Count og Event
    Frame_Status();        // Vælger den iframe der skal bruges.
}

private void Kalender_til_Event()
{
    sql_Select_Kalender.CommandText = "SELECT text AS \'Events d.: " + Calendar1.SelectedDate.ToString().Substring(0,10) + "\' FROM dbo._kalender WHERE (dato = \'" + Calendar1.SelectedDate.ToString().Substring(0,10) + "\')";
    sqlDataAdapter_Kalender.SelectCommand = sql_Select_Kalender;
    dataSet_kalender.Reset();
    sqlDataAdapter_Kalender.Fill(dataSet_kalender);
    Event_grid.DataBind();
//        sqlConnection1.Close();
}
private void Calendar1_SelectionChanged(object sender, System.EventArgs e)
{
    Kalender_til_Event();
}
Avatar billede snepnet Nybegynder
19. juli 2005 - 18:52 #8
får du her :o)
mvh
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