Hej!
Har en kalender där aktiviteter renderas. Mitt problem är dock följande: Säg att vi har en aktivitet som sträcker sig från 17/3 till 19/3. Jag får i kalendern in denna aktivitet på den 17:e och 19:e men inte på den 18:e. Hur löser man detta? Har klurat med SQL-sats ett bra tag nu, men det har låst sig helt för mig.
Mellandatum i kalender
5 svar · 624 visningar · startad av Krekan
Se till att du har ett start och ett slutdatum. Sedan i din dayrender lägger du en ifsats som kollar om den dag som för tillfället renderas är större eller lika med ditt startdatum och mindre eller lika med ditt slutdatum. Om uttrycket är sant så gör du vad-du-nu-vill-göra! Typ nåt sånt här:
private void DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e) {
if(e.Day.Date >= StartDate && e.Day.Date <= EndDate) {
e.Cell.BackColor = Color.Blue;
}
}
Tack för svar .... men problemet uppkommer tidigare än så. Säg att tabellen (Aktivitet) har följande rader:
ID
AktivitetsNamn
Startdatum
Slutdatum (inte obligatoriskt)
Jag har i tabellen en aktivitet som har Startdatum 2004-03-17 och Slutdatum 2004-03-19.
Min SQL-sats ser just nu ut som följer:
SELECT * FROM Aktivitet WHERE (Startdatum >= '2004-03-17' AND Startdatum <= '2004-03-17')
OR (Slutdatum >= '2004-03-17' AND Slutdatum <= '2004-03-17')
Jag får då fram alla aktiviteter som börjar eller slutar den 17/3. Detta fungerar utmärkt. Likaså får jag fram aktiviteten om jag skickar in '2004-03-19'. Men det är när jag skriver '2004-03-18' som den inte hittar någonting ... av naturliga skäl. Frågan är hur man skall skriva SQL-satsen för att få ut den här posten då. Jag vill heller inte hämta alla posterna och göra urvalen i kalenderkoden.
Aha, då flyttar vi tråden där den besvaras bäst. :)
Kan väl göra ett försök att svara när jag ändå är här, om jag inte missuppfattat dig helt så är det väl bara att skriva:
SELECT * FROM Aktivitet WHERE Startdatum >= 'startdate' AND Slutdatum <= 'enddate')
?
Tja, fast det blev tvärtom :) Med din SQL-sats så kommer de inte alls fram. Detta på grund av att 2004-03-18 är större än startdatum och mindre än slutdatum. Fick vända på >= och <= och lägga till lite kod för de aktiviteter som inte har ett slutdatum så fungerar det. Tack för hjälpen!