ArneMedlem sedan maj 2000267 inlägg Jag har en asp:Calendar och vill köra den mot en SQL databas.
Jag vill skriva ut t.ex ett OK om det finns en notering i databasen som har samma datum som någon av dagarna i den visade månadens kalender.
Till exempel har jag en notering datumen 2002-10-11 och 2002-10-23. I respektive datum celler som har dessa datum i kalendern ska det stå t.ex ett OK. De andra cellerna ska bara visa datumen.
Går detta eller är jag helt ute och cyklar?
NETworkMedlem sedan juni 20011 732 inlägg GrynetMedlem sedan maj 2001329 inlägg GrynetMedlem sedan maj 2001329 inlägg bah, han inte svara först..inte ens en minut emellan x(
ArneMedlem sedan maj 2000267 inlägg Oj
Oj då, här var det snabba ryck. Man han inte klicka ner webbfönstrer innan det sa pling i mail lådan.
Ska genast förkovra mig i exemplen....
Tack för de snabba svaren.
ArneMedlem sedan maj 2000267 inlägg Får inte till det....
Det exempel jag använde var:
http://www.dotnetjunkies.com/quickstart/util/srcview.aspx?path=/quickstart/aspplus/samples/webforms/ctrlref/webctrl/Calendar/Calendar5.src&file=VB\calendar5.aspx&font=3
Mitt problem är hur jag ska omvandla exemplet nedan till att hämta data från min sql server och lopa igenom min databas och kolla om det finns något datum som överensstämmer med månadens dagar och finns det det så ska jag få ett OK i den aktuella cellen. Hur ända in i baljan gör jag det?
Jag är nybörjare med NET.....
Dim holidays(12,31) as String
Sub Page_Load(sender As Object, e As EventArgs)
holidays(1,1) = "New Year's Day"
holidays(1,26) = "Australia Day"
holidays(2,2) = "Groundhog Day"
holidays(2,14) = "Valentine's Day"
holidays(3,17) = "St. Patrick's Day"
holidays(4,1) = "April Fool's Day"
holidays(5,1) = "May Day"
holidays(6,15) = "My Birthday"
holidays(7,15) = "My Anniversary"
holidays(8,15) = "My Mother's Birthday"
holidays(9,24) = "Autumnal Equinox"
holidays(12,26) = "Boxing Day"
End Sub
Sub Calendar1_DayRender(sender As Object, e As DayRenderEventArgs)
Dim d as CalendarDay
Dim c as TableCell
d = e.Day
c = e.Cell
If d.IsOtherMonth Then
c.Controls.Clear
Else
Try
Dim Hol As String = holidays(d.Date.Month,d.Date.Day)
If Hol \<\> "" Then
c.Controls.Add(new LiteralControl("\<br\>" + Hol))
End If
Catch exc as Exception
Response.Write (exc.ToString())
End Try
End If
End Sub
NETworkMedlem sedan juni 20011 732 inlägg Du kan använda samma teknik. I exemplet har de en array som de sätter statiskt i koden, men det går naturligtvis även att stoppa in dina data på motsvarande sätt. Hämta dina datum, stoppa in dem i en array som ser likadan ut så behöver du inte modifiera koden så mycket! I ditt fall ska du ju bara skriva ut OK, så då räcker det med en if-sats där du skriver OK om datumet finns, annars gör du inget i den cellen.
Dim thisDate As String = myDateArray(d.Date.Month,d.Date.Day)
If thisDate <> "" Then
c.Controls.Add(new LiteralControl("OK!"))
ArneMedlem sedan maj 2000267 inlägg Får inte till det
Hmm, jag har nog tagit vatten över huvudet......
Jag måste erkänna att array är nytt för mig när det gäller att hämta ur en databas. Har nu försökt hela dagen och jag får bara error.
Kan jag få en hjälpande hand som talar om för mig vad jag gör för fel.....
Dim myDateArray(12,31) as String
Sub Page_Load(sender As Object, e As EventArgs)
MyConnection = New SqlConnection("Data Source=(local);" & "Initial Catalog=mindatabas;" & "User ID=sa;" & "Password=")
MyCommand = New SqlCommand("select tavlingdatum from kalender", MyConnection)
MyConnection.Open()
dr = MyCommand.ExecuteReader()
While dr.Read()
If dr("tavlingdatum") \<\> "" Then
myDateArray = "(" & replace(Right(dr("tavlingdatum"),5),"-", ",") & ")\<br\>"
End If
End While
MyConnection.Close()
end sub
Sub Calendar1_DayRender(sender As Object, e As DayRenderEventArgs)
Dim d as CalendarDay
Dim c as TableCell
d = e.Day
c = e.Cell
If d.IsOtherMonth Then
c.Controls.Clear
Else
Try
Dim thisDate As String = myDateArray(d.Date.Month,d.Date.Day)
If thisDate \<\> "" Then
c.Controls.Add(new LiteralControl("OK!"))
End If
Catch exc as Exception
Response.Write (exc.ToString())
End Try
End If
End Sub