webForumDet fria alternativet

asp:Calendar

.NETur .NET

7 svar · 349 visningar · startad av Arne

ArneMedlem sedan maj 2000267 inlägg
#1

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
#2

Visst går det! Detta gör du med dayrendern som är en slags loop som rullar igenom dag för dag i din kalender. Där kan du stoppa in/sätta värden på de olika cellerna.

Här har du ett enkelt kodexempel som du kan titta på:
http://www.dotnetjunkies.com/quickstart/util/srcview.aspx?path=/quickstart/aspplus/samples/webforms/ctrlref/webctrl/Calendar/Calendar5.src&file=CS\calendar5.aspx&font=3

Och så här blir resultatet:
http://www.dotnetjunkies.com/quickstart/aspplus/samples/webforms/ctrlref/webctrl/Calendar/VB/Calendar5.aspx

GrynetMedlem sedan maj 2001329 inlägg
#3

Det sista (5:te) exemplet på denna sidan borde vara vad du söker

http://samples.gotdotnet.com/quickstart/aspplus/samples/webforms/ctrlref/webctrl/calendar/doc_cal.aspx

GrynetMedlem sedan maj 2001329 inlägg
#4

bah, han inte svara först..inte ens en minut emellan x(

ArneMedlem sedan maj 2000267 inlägg
#5

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
#6

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
#7

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
#8

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
130 ms totalt · 3 externa anrop · v20260731065814-full.a2ca460b
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)