{"topLabGuid":"81809c56-e1e5-4173-a926-9e59df8ee6ed","stammGuid":"5ccbf5a3-4074-4e3c-a719-faf98eb7b02a","postItGuid":"4214d8ac-e017-4f26-be0a-55dbb2f53358","titel":"Der Control Code","topLab1":"<pre>// der Code vom ascx Control\r\n// ----------------------------\r\n\r\nusing System.Globalization;\r\nusing System.Threading;\r\n\r\npublic delegate void DayRenderHandler (object sender, DayRenderEventArgs e);\r\n\r\npublic partial class BelegungsplanControl : System.Web.UI.UserControl\r\n{\r\n    public event DayRenderHandler DayRender;\r\n\r\n    HtmlTable tbl;\r\n    HtmlTableRow row;\r\n    HtmlTableCell cell;\r\n\r\n    string[] monate;\r\n    string[] tage;\r\n\r\n    public string Jahr = \"2007\";\r\n\r\n    protected void Page_Load(object sender, EventArgs e)\r\n    {\r\n        monate = DateTimeFormatInfo.CurrentInfo.MonthNames;\r\n        tage = DateTimeFormatInfo.CurrentInfo.ShortestDayNames;\r\n\r\n        tbl = new HtmlTable();\r\n        PlaceHolder1.Controls.Add(tbl);\r\n\r\n        createHeader();\r\n\r\n        for(int monatIdx = 0; monatIdx < 12; monatIdx++)\r\n        {\r\n            // neue Zeile für den Monat\r\n            row = new HtmlTableRow();\r\n            tbl.Rows.Add(row);\r\n\r\n            // Monatsname\r\n            cell = new HtmlTableCell();\r\n            cell.InnerHtml = monate[monatIdx];\r\n            row.Cells.Add(cell);\r\n\r\n            // Der erste Tag im Monat\r\n            DateTime day = DateTime.Parse(Jahr + \"-\" + \r\n(monatIdx+1).ToString() + \"-1\");\r\n\r\n            // leere Zellen bis zum richtigen Wochentag\r\n            for (int leer = 0; leer < (int)day.DayOfWeek; leer++)\r\n            {\r\n                cell = new HtmlTableCell();\r\n                cell.InnerHtml = \"-\";\r\n                row.Cells.Add(cell);\r\n            }\r\n\r\n            // Die Tage des Monats füllen\r\n            while (day.Month == (monatIdx + 1))\r\n            {\r\n                cell = new HtmlTableCell();\r\n                cell.InnerHtml = day.Day.ToString();\r\n                row.Cells.Add(cell);\r\n\r\n                // Ereignis auslösen\r\n                if (DayRender != null)\r\n                {\r\n                    DayRenderEventArgs drea = new \r\nDayRenderEventArgs(day,cell);\r\n                    DayRender(this, drea);\r\n                }\r\n\r\n                // nächster Tag\r\n                day = day.AddDays(1);\r\n            }\r\n        }\r\n    }\r\n\r\n    // erstellt die erste Zeile mit den Wochentagsnamen\r\n    private void createHeader()\r\n    {\r\n        row = new HtmlTableRow();\r\n        tbl.Rows.Add(row);\r\n\r\n        // leere Zelle\r\n        cell = new HtmlTableCell();\r\n        row.Cells.Add(cell);\r\n\r\n        // 5 Wochen aneinander hängen\r\n        for (int i = 0; i < 5; i++)\r\n        {\r\n            foreach(string tag in tage)\r\n            {\r\n                cell = new HtmlTableCell();\r\n                cell.InnerHtml = tag;\r\n                row.Cells.Add(cell);\r\n            }\r\n        }\r\n    }\r\n}\r\n</pre>\r\n\r\n","url":"","lohn":0.8500,"datum":"2007-01-16T00:06:14.97","datei":"","topTopLabGuid":null,"typ":"htm","inboxes":[],"inverseTopTopLab":[],"postIt":null,"stamm":null,"tollis":[],"topTopLab":null}