2009-08-12 5 views
0

Ich benutze ein Steuerelement in meiner asp.net Webseite, die ich nicht den Quellcode habe, dieses Steuerelement rendert einige unerwünschte BR (neue Zeile) -Tags in HTML, die sie mein Layout brechen. Ich würde gerne wissen, ob es einen Weg gibt, den Renderprozess zu kontrollieren, ohne das Kontrollverhalten zu brechen (es ist ein sehr komplexes Ajax-System) oder etwas auf der Client-Seite zu tun.Wie kann man den Render-Prozess steuern oder das TAG-Verhalten von BR unterdrücken?

Ich habe versucht, CSS zu verwenden, das zu lösen, aber ohne Erfolg ... in der Tat, es funktioniert in Firefox, aber leider nicht in der IE6:

 
#my-div-place-holder br 
{ 
    position: absolute;/*hack: Supress BR tags*/ 
} 

Antwort

1

Sie haben zwei verschiedene Möglichkeiten für die eigene Rendering für eine Steuer Injektion:

  1. Subclass der Server-Steuerung und überschreiben die Render Methode.
  2. Verwendung ASP.Net Control Adapters

Wenn Sie zu Unterklasse entscheiden, haben Sie Zugriff auf Basisklassenmethoden haben könnte (falls vorhanden), die verschiedene Aspekte der Rendering durchführen, so dass Sie den gesamten nicht implementieren müssen Logik selbst darstellen.

Wenn Sie es vorziehen, nicht in das serverseitige Rendering einzutauchen, können Sie dasselbe mit Javascript erreichen.

+0

@Ken Browning, danke für Ihre schnelle Antwort. Ich habe mit meinen Kollegen gesprochen und sie haben dasselbe gesagt. Es ist besser, wenn ich die Serversteuerung unterscheide und die Rendermethode außer Kraft setze. – Cleiton

1

Wie wäre es ein Httpmodule mit der gerenderte HTML zu filtern? Ich mag die CSS-Idee, schade, dass es im IE funktioniert.

1

Ich würde für HttpModule und ein ResponseFilter gehen. Verwenden Sie RegEx, um die Br-Tags zu finden, und ersetzen Sie sie durch String.Empty, bevor die Antwort an den Client gesendet wird.

+0

woww ... Ich wusste das nicht! Ich werde es versuchen. – Cleiton

Verwandte Themen