Avatar billede larsen1 Nybegynder
08. juni 2005 - 13:23 Der er 6 kommentarer og
1 løsning

Kalender dagvisning

Jeg er gammel asp-skribler, der lige har kastet mig over mit første asp.net projekt. Det er en rimeligt simpel kalender, der viser en dat med asp:calendar, og derfra viser den valgte dag med halvtimes intervaller. Lidt i stil med outlooks dagsvisning.
Jeg har fået den til at hente poster frem fra databasen der passer til den valgte dag, og nu skal jeg bare have resultatet vist i en tabel.

Jeg er lidt i syv sind mht. hvad der er den mest korrekt og ressource-besparende metode.
1. Jeg kan lave en direkte databind til en tabel, men så kan jeg ikke se hvordan jeg kan få vist de tomme tidsintervaller.
2. Jeg kan evt. lave et array med et felt for hvert tidsinterval, og så binde det til et tabel, men det virker en smule dumt.
3. Jeg ved ikke om jeg kan lave tabellen, og så derefter indsætte værdier i de rigtige felter.
Avatar billede larsen1 Nybegynder
09. juni 2005 - 10:38 #1
Er der slet ingen der har et kvalificeret bud?
Avatar billede snepnet Nybegynder
09. juni 2005 - 13:12 #2
hej larsen1

der bliver ikke rigtig sendt nogle mails ud - så man skal selv ud og se om der er kommet nyt lige i øjeblikket.

desuden synes jeg at der mangler lidt i det du skriver, så det ikke sådan falder lige for hvad et godt forslag kunne være.

jeg tror selv jeg ville lave en "dags-præsentationskontrol" der viser en dag opdelt i intervaller.
intervallerne kan du sørge for er en konfigurationsparameter, og ligeledes kunne det være en parameter, hvilket udsnit af dagen du vil præsentere.

du kan på den kontrol så sørge for, at du kan stikke den f.eks. et array af aftaler (eventuelt et array af IAppointment's), som kontrollen så selv sørger for bliver proppet ind de rigtige steder.
måske du også har brug for at kunne noget .AddAppointment() mv.

du kan uden problemer putte noget ind i en eksisterende tabel.

under alle omstændigheder, vil jeg mener at du skal lave kontrollen så den som udgangspunkt altid renderer en fuld dag (eller den del af den du har bedt om), og så vil nogle af intervallerne så blot renderes anderledes, såfremt der ligger en aftale der.

du kan gøre det både templatebaseret eller programmatisk, og den sidste vil nok i sidste ende give dig lidt bedre muligheder for at kunne styre intervaller mv. konfigurativt.

du kan godt få nogle eksempler mv. men det ville være fint, hvis du lige kridtede banen lidt klarere op.

mvh
Avatar billede larsen1 Nybegynder
09. juni 2005 - 14:13 #3
Super! Det var lige den slags svar jeg ledte efter. Hvis du ligger et svar skal du nok få point.

Som jeg forstår det, og nok vælger at prøve det, dropper jeg alt der hedder data-binding. Jeg prøver lige at beskrive det jeg har fattet, hvis jeg nu har fat i noget der er grundlæggende forkert.

Jeg skriver en kontrol der f.eks. får parametrene(valgDato, arrayAppointments, StartTime, Endtime, Interval)
I min kontrol udskriver jeg tabelceller fra StartTime til EndTime.
Idet jeg udskriver cellen checker jeg om den ligger indenfor et tidsrum i mit arrayAppointments.

Lyder det fornuftigt?
Avatar billede snepnet Nybegynder
09. juni 2005 - 15:15 #4
det er i hvert fald en mulighed.... kan du ikke smide lidt omkring det du laver herude, så skal jeg nok prøve at følge med så godt jeg kan - og komme med idéer til det, hvis det bliver nødvendigt :o)
mvh
Avatar billede larsen1 Nybegynder
09. juni 2005 - 15:32 #5
Jeg ved ikke helt om jeg har forstået fremgangsmåden helt, men lige nu ser det således ud:

På min default-side starter jeg med:
<%@ Register TagPrefix="KalenderPicker" TagName="Tabel" Src="writeTable.ascx" %>
og nede på siden hvor min tabel skal optræde:
<KalenderPicker:tabel id="dagstabel" variabeltekst="Medsendtvariabel" runat="server" />

Og så ser min writeTable.ascx således ud:
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="writeTable.ascx.vb" Inherits="BookingKalender.writeTable" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<script runat="server">
    Public Property variabeltekst() as String
        Get
            Return ViewState("variabeltekst")
        End Get
        Set
            ViewState("variabeltekst") = value
        End Set
    End Property
   

</script>

<table border="1">
<%
dim i as integer
for i = 0 to 20
%>
    <tr>
        <td>
            <asp:label id="lbl1" runat="server">
            <%= variabeltekst %>
            </asp:label>
        </td>
    </tr>
<% next %>   
</table>

På samme måde som "variabeltekst" ser det ud til at jeg kan medsende variabler om starttidspunkt, sluttidspunkt og interval. Så skal jeg bare finde ud af om jeg kan medsende et array med aftaler somehow.

Så jeg eksperimenterer bare videre
Avatar billede snepnet Nybegynder
09. juni 2005 - 20:58 #6
hej igen :o)

en lille ting ... du har angivet en codebehind-fil, men du putter så koden i ascx-filen, hvordan kan det være ?

mht. selve løsningen.... så vil jeg gerne lave en lille sådan halvkonceptuelt forslag, hvis du gerne vil se sådan et?

mvh
Avatar billede larsen1 Nybegynder
13. juni 2005 - 11:17 #7
Koden er i ascx-filen fordi jeg er åbenbart ikke har helt fat i den lange ende af forståelsesregistret. 

Du må hellere end gerne lave et "halvkonceptuelt" forslag. Det ville være supergejl!!!!!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester