2009-09-11 6 views
7

Ich habe gerade angefangen, mit dem ASP: Login-Steuerelement basteln, und möchte sein Aussehen zu bearbeiten. Also habe ich folgendes:ASP: Login <LayoutTemplate> generiert immer eine <table>, wie kann ich es stoppen?

<asp:login ID="login" runat="server" onauthenticate="Authenticate"> 
<LayoutTemplate> 
    <asp:TextBox ID="UserName" runat="server"></asp:TextBox> 
    <asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox> 
</LayoutTemplate> 
</asp:login> 

Trotz der Tatsache, dass ich keine <table> Tag irgendwo im Dokument haben, sobald ich eine Vorschau der Seite und die Quelle sehen, es zeigt sehr deutlich eine <table> dort. Ah! Wie in der Welt verhindere ich dieses verrückte Verhalten oder bin ich gezwungen, Tabellen anstelle von CSS für das Layout zu verwenden?

Antwort

0

Es gibt eine Reihe von Dingen, die Sie tun können.

Am einfachsten wäre es, die Css Control Adapters toolkit Version des Login control zu verwenden, obwohl es seit einer Weile nicht aktualisiert wurde und ich es vor kurzem nicht verwendet habe, also ist es vielleicht keine gute Option mehr, ich bin nicht sicher.

Andernfalls könnten Sie versuchen, Ihre eigene ITemplate zu erstellen und sie als Eigenschaft des LayoutTemplate für das Login-Steuerelement festzulegen.

Alternativ könnten Sie das generierte HTML mit einem IHttpHandler neu schreiben oder sogar auf dem Client mit etwas wie jQuery dom replacement wiederholen.

14

Sie können festlegen, es keine Tabellen ohne Erweiterungen von Drittanbietern zu verwenden, nur sicherstellen, dass Sie die Ihre HTML/Formular innerhalb der Steuer

<LayoutTemplate> 
</LayoutTemplate> 

Für die Verlegung verwenden aus, und stellen Sie das Attribut auf der Anmeldung, dass die Kontrollen der äußere Tisch zu falsch.

RenderOuterTable="false" 

Das ist es, keine Tabellen :)

+0

Beachten Sie, dass Sie .Net 4.0+ benötigen –

Verwandte Themen