22. januar 2004 - 16:08Der er
15 kommentarer og 2 løsninger
Calender - marker datoer med aftaler
Jeg har tyvstjålet noget kode der læser aftaler fra et XML-dokument ind i et calender object på en aspx-side. Virker perfekt, og jeg tror endda jeg forstår koden.
Men hvordan markerer jeg de dage i min kalender, hvor der er aftaler?
Sub Opdater(dato) dim myCalender=New DataSet myCalender.ReadXml(MapPath("MyCalendar.xml")) Dim MyTable As DataTable MyTable = New DataTable MyTable = myCalender.Tables(0) Dim numrows as integer = MyTable.Rows.Count Dim objResults() As DataRow Dim strFilterExpr as String = "EventDate LIKE '" & Dato & "'" Dim strSortString as String = "StartTime" objResults = Mytable.Select(strFilterExpr, strSortString) Dim objRow As DataRow Dim strResult As String = "<table>" strResult +="<td><b>Emne</td>" strResult +="<td><b>Dato</td>" strResult +="<td><b>Start</td>" strResult +="<td><b>Slut</td></tr>" Dim res as Boolean = False For Each objRow In objResults res = True strResult += "<tr><td> " & objRow(1) _ & "</td><td> " & objRow(2) & "</td></td><td> " & objRow(3) _ & "</td></td><td> " & objRow(4) & "</td></tr>" Next strResult +="</table>" if Not res then strResult = "..." outResults.innerHTML = strResult End Sub
Sub Calendar1_SelectionChanged(sender As Object, e As EventArgs) Dim Dato as DateTime = calendar1.SelectedDate Dim strDato as String = Dato.ToString("yyyy-MM-dd") Opdater(strDato) End Sub </script>
Jeg fatter ikke helt den DayRender - hvornår bliver den triggeret, og hvordan får jeg renderet alle dage fra min XML-kalender?
Fra MSDN: Sub DayRender(source As Object, e As DayRenderEventArgs) If e.Day.Date.Day = 18 Then e.Cell.Controls.Add(New LiteralControl(ChrW(60) & "br" & ChrW(62) & "Holiday")) End If End Sub
Ovenstående laver alle d. 18 om, så der står Holiday. Jeg skal lave min kalender så alle datoer fra mit xml-dokument bliver fede..?
den bliver triggered hver gang, som navnet antyder, en dag bliver renderet i din calendar. Dvs. at du kan nå at lave nogle last-minute changes på dagen.
1) du skal have en måde hvorpå du kan checke om en given dato findes i dit xml-dokument. De kan evt. gøres ved at loope igennem alle dine datoer for hver dag i kalenderen, og checke om de stemmer overens. 2) du kan bruge style til at lave teksten bold 3) måske lidt grundlæggende programmering ville være på sin plads.
Sub DayRender(source As Object, e As DayRenderEventArgs)
dim myCalender=New DataSet myCalender.ReadXml(MapPath("MyCalendar.xml")) Dim MyTable As DataTable MyTable = New DataTable MyTable = myCalender.Tables(0) Dim objRow As DataRow For Each objRow In MyTable.Rows
cyberfessor: ad 3) Var det en sarkastisk bemærkning? Jeg vælger at tage det som en venlig ment opfordring, og tilføjer, at jeg har programmeret en hel masse i VB6, men er ny i .NET. Og det ER altså ikke helt det samme. Derfor måske lidt dumme spørgsmål. Beklager...
Jeg ved da godt hvad en event er - ellers ville det vel være svært at programmere i et event-driven sprog som VB6...
Men når jeg tager hul på .NET kan selv en lillebitte ting være nok så svær at få styr på - fx. at forstå hvordan man får vist alle datoer, der matcher datoer i et XML-dokument, som fed. Og det er vel det eksperten er til for? Nu har jeg tjent >5000p og opsparet >4000p, så kan jeg vel godt begynde at bruge lidt af dem ;o)
jo... vb6 er eventdriven... men alt sammen foregår behind-the-scene... man kan ikke umiddelbart definere sine egne events eller hvad de skal hedde. har været ud for personer der ikke ANEDE hvad OOP eller Events var, men kunne lave rimelig store og komplekse programmer i vb6.
Jeg programmerer skam også objektorienteret i VB6 (i den grad at man kan) :o)
Synes godt om
Ny brugerNybegynder
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.