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