2009-08-12 7 views
0

J'utilise un contrôle sur ma page web asp.net pour lequel je n'ai pas le code source, ce contrôle rend certaines balises BR (nouvelle ligne) indésirables en HTML, ce qui perturbe ma mise en page. Je voudrais savoir s'il y a une façon dont je peux prendre le contrôle du processus de rendu sans casser le comportement de contrôle (c'est un ajax très complexe) ou faire quelque chose du côté client.comment prendre le contrôle du processus de rendu ou supprimer le comportement TAG du BR?

J'ai essayé d'utiliser les CSS pour résoudre, mais sans sucess ... En effet, il fonctionne dans Firefox, mais ne marche pas dans IE6:

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

Répondre

1

Vous avez deux options différentes pour injecter votre propre rendu pour un contrôle:

  1. Sous-classe le contrôle du serveur et substituez la méthode Render.
  2. Utilisez ASP.Net Control Adapters

Si vous optez pour la sous-classe, vous pourriez avoir accès à des méthodes de classe de base (si elles existent) qui effectuent différents aspects du rendu afin que vous n'avez pas à mettre en œuvre l'ensemble rendre la logique vous-même.

Si vous préférez ne pas plonger dans le rendu côté serveur, vous pouvez effectuer la même chose avec javascript.

+0

@ Brown Browning, merci pour votre réponse rapide. Je parlais avec mes collègues et ils ont dit la même chose, il est préférable que je sous-classe le contrôle du serveur et remplace la méthode de rendu. – Cleiton

1

Que diriez-vous en utilisant un HttpModule pour filtrer le rendu HTML? J'aime bien l'idée de CSS, dommage qu'elle fonctionne dans IE.

1

Je voudrais aller pour HttpModule et un ResponseFilter. Utilisez RegEx pour rechercher les balises br et remplacez-les par String.Empty avant d'envoyer la réponse au client.

+0

woww ... Je ne savais pas ça! Je vais essayer. – Cleiton

Questions connexes