webForumDet fria alternativet

Fylla asp:calendar med text från db?

.NET

2 svar · 275 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#1

Hej! Jag har en tabell med lite datum och texter som jag vill få in i en kalenderkontroll. Försöker använda detta exempel men hur gör jag om jag har en datatable istälelt för en stringcollection?

http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?path=~/aspnet/samples/ctrlref/standard/calendar/Calendar5.src&file=calendar5_cs.aspx&lang=C%23+Source

Problem två är att varje post i tabellen har ett start och ett slutdatum, jag vill alltså att en eventuell text ska stå i varje cell i kalendern från startdatumet till slutdatumet och eventuella dagar där emellan.

Medlem sedan sep. 2005673 inlägg
#2

Har en lösning, vet dock inte om den är så bra... för varje dag kollar jag igenom alla poster i min datatable. Finns det något mer resurssnålt sätt att lösa det på kanske eller måste man göra så här?

CalendarDay d = ((DayRenderEventArgs)e).Day;
        TableCell c = ((DayRenderEventArgs)e).Cell;

        if (d.IsOtherMonth)
            c.Controls.Clear();

        foreach(DataRow row in MyDataTable.Rows) {
            if ((DateTime)row["StartDate"] <= d.Date && (DateTime)row["EndDate"] >= d.Date)
            {
                c.Controls.Add(new LiteralControl(row["Topic"].ToString()));
            }
        }
Medlem sedan dec. 19996 721 inlägg
#3

DataTable har en Select-metod, så du behöver inte loopa igenom. Dessutom är väl "e" redan en DayRenderEventArgs, så du behöver inte casta den.

257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)