Hallo, > Ich habe mich mal an das von Alex in seinem Blog empfohlene > "Template System" gemacht. > > http://www.csharphelp.com/archives2/archive383.html > > Ist im Grunde wirklich so einfach zu implementieren, wie es > der Autor schreibt. > > Bis auf einen Punkt: meine Formulare funktionieren nicht mehr... > auch das Beispiel (ControlsPage.aspx) funktioniert bei mir nicht. > > Meine Vermutung: er haut vor jede ID die des Templates, was dann > dazu führt dass nix mehr funzt. >
sehr wahrscheinlich bekommst Du beim Postback einen JS-Error, oder? Das Problem rührt von einem Bug in ASP.NET. In dem PostBack- Konstrukt wird anstelle des "_" ein ":" eingebaut. Dafür gibt es einen FIX von MS, den man aber explizit anfordern muß. Die andere Möglichkeit ist, das unten aufgeführte Render-Konstrukt in die Template.ascx.cs einzubauen. Diese überschreibt dann die ":" - Einträge mit "_" und es sollte funktionieren. Hat auch den Vorteile, daß Du Deine Entwicklungen auf ungepatchten Servern installieren kannst. Der Code: protected override void Render(HtmlTextWriter writer) { StringBuilder stringBuilder = new StringBuilder(); StringWriter stringWriter = new StringWriter(stringBuilder); HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter); base.Render(htmlWriter); string html = stringBuilder.ToString(); int start = html.IndexOf("<form name=\"") + 12; int end = html.IndexOf("\"", start); string formID = html.Substring(start, end - start); string replace = formID.Replace(":", "_"); html = html.Replace("document." + formID, "document." + replace); writer.Write(html); } Gruss Alex _______________________________________________ Asp.net mailing list [EMAIL PROTECTED] http://www.glengamoi.com/mailman/listinfo/asp.net