Dayrender i calender
Jeg er ret grøn i ASP.NET, og søger hjælp til følgende:Jeg har en MyCalendar.xml og en Kalender.aspx med en calender web control.
Jeg vil have kalenderen til at læse begivenheder fra xml-filen, og markere de dage hvor der "sker noget" (som i Outlook)
Jeg kan fint få vist hvad der sker en bestemt dag, hvis jeg kilkker på datoen, for så trigger jeg Calendar1_SelectionChanged, hvor jeg så udskriver hvad der nu sker den pågældende dato... Men hvordan får jeg vist på kalenderen, at der nu er en aftale de forskellige datoer - jeg har forsøgt med DayRender, men kan ikke få det til at virke.
Jeg ved godt, at jeg burde læse en bog osv, og giver jer ret, og det gjorde jeg også for lidt for lang tid siden...
Håber nogen gider give sig tid til lige at kaste et blik på det, og sige hvad der er galt, hvorfor, og hvordan det rettes...
----------MyCalender.xml-------------
<?xml version="1.0" standalone="yes"?>
<MyCalendar>
<Event>
<Event>
<ShortDesc>Bryllup</ShortDesc>
<DetailDesc>Brullup, Mark & Maria</DetailDesc>
<EventDate>2004-02-02</EventDate>
<StartTime>08:00</StartTime>
<EndTime>23:00</EndTime>
</Event>
</MyCalendar>
---------Kalender.aspx ---------------------------------
<%@ Page %>
<%@ import Namespace="System.Data" %>
<script runat="server">
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
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
If objRow(2) = e.Day.Date Then
e.Cell.CssClass = "fed"
End If
Next
End Sub
</script>
<html>
<head></head>
<body>
<form runat="server">
<table width="90%">
<tbody>
<tr>
<td>
<p align="center">
<asp:Calendar id="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged" BorderWidth="1px" NextPrevFormat="FullMonth" Width="250px" ForeColor="Black" Height="190px" Font-Size="9pt" Font-Names="Verdana" BorderColor="White">
<TodayDayStyle backcolor="#CCCCCC"></TodayDayStyle>
<NextPrevStyle font-size="8pt" font-bold="True" forecolor="#333333" verticalalign="Bottom"></NextPrevStyle>
<DayHeaderStyle font-size="8pt" font-bold="True"></DayHeaderStyle>
<SelectedDayStyle forecolor="White" backcolor="#333399"></SelectedDayStyle>
<TitleStyle font-size="12pt" font-bold="True" borderwidth="4px" forecolor="#333399" bordercolor="Black" backcolor="White"></TitleStyle>
<OtherMonthDayStyle forecolor="#999999"></OtherMonthDayStyle>
</asp:Calendar>
</p>
</td>
</tr>
</tbody>
</table>
</p>
<div id="outResults" runat="server">
</div>
</form>
</body>
</html>
