Avis aux puristes - génération de code non contrôlée

Le
stefrs
Lorsque vous codez des <table> côté serveur en Asp.Net 2005, la page
restituée encadre ces <table> dans des :

<span style="display:inline-block;

Ce qui a priori déplaît à Firefox puisque le console d'erreur renvoie le
message suivant :
Avertissement : Erreur d'analyse de la valeur pour la propriété « display ».
Déclaration abandonnée

Imbettant puisque ces span ne sont pas codés en dur mais retranscrits.
Est-ce que quelqu'un connaîtrait une astuce pour que ces messages
n'apparaîssent plus ?

S'il vous plaît, pour une fois, une réponse au moinsqui m'aiderait et ce
serait le top !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles TOURREAU
Le #12163221
Le Tue, 11 Dec 2007 15:01:00 +0100, stefrs

Lorsque vous codez des <table> côté serveur en Asp.Net 2005, la page
restituée encadre ces <table> dans des :

<span style="display:inline-block; ...

Ce qui a priori déplaît à Firefox puisque le console d'erreur renvoie le
message suivant :
Avertissement : Erreur d'analyse de la valeur pour la propriété «
display ».
Déclaration abandonnée...

Imbettant puisque ces span ne sont pas codés en dur mais retranscrits.
Est-ce que quelqu'un connaîtrait une astuce pour que ces messages
n'apparaîssent plus ?

S'il vous plaît, pour une fois, une réponse au moins...qui m'aiderait et
ce
serait le top !



Pouvez-vous montrer votre code ASP .NET autour de ce tableau ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
stefrs
Le #12163211
Oui, enfin c'est très classique, voilà le début d'un tableau codé côté
serveur :

options.Text = "<Table style='width:800px;' cellpadding='0' cellspacing='0'
border='0'>";
options.Text += "<td class='texte' style='width:170px;height:30px;'
valign='middle' align='center'><img src='images/image_temp.jpg' hspace='5'
border='0' align='absmiddle' alt='Une sortie' />" + variable + "</td>";
...

C'est écrit dans un Label. Maintenant que j'y pense, je me dis que le
problème du <span style='display:... qui encadre une fois reconstitué doit
venir de là. Comment faire autrement alors ? Un <div runat='server'... ?

"Gilles TOURREAU" a écrit :

Le Tue, 11 Dec 2007 15:01:00 +0100, stefrs

> Lorsque vous codez des <table> côté serveur en Asp.Net 2005, la page
> restituée encadre ces <table> dans des :
>
> <span style="display:inline-block; ...
>
> Ce qui a priori déplaît à Firefox puisque le console d'erreur renvoie le
> message suivant :
> Avertissement : Erreur d'analyse de la valeur pour la propriété «
> display ».
> Déclaration abandonnée...
>
> Imbettant puisque ces span ne sont pas codés en dur mais retranscrits.
> Est-ce que quelqu'un connaîtrait une astuce pour que ces messages
> n'apparaîssent plus ?
>
> S'il vous plaît, pour une fois, une réponse au moins...qui m'aiderait et
> ce
> serait le top !

Pouvez-vous montrer votre code ASP .NET autour de ce tableau ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Gilles TOURREAU
Le #12163201
Le Tue, 11 Dec 2007 15:36:00 +0100, stefrs

Oui, enfin c'est très classique, voilà le début d'un tableau codé côté
serveur :

options.Text = "<Table style='width:800px;' cellpadding='0'
cellspacing='0'
border='0'>";
options.Text += "<td class='texte' style='width:170px;height:30px;'
valign='middle' align='center'><img src='images/image_temp.jpg'
hspace='5'
border='0' align='absmiddle' alt='Une sortie' />" + variable + "</td>";
...

C'est écrit dans un Label. Maintenant que j'y pense, je me dis que le
problème du <span style='display:... qui encadre une fois reconstitué
doit
venir de là. Comment faire autrement alors ? Un <div runat='server'... ?




Ok, et pouvez-vous montrer le code ASP .NET autour du contrôle "options" ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Laurent Jordi
Le #12163161
Salut,

Lorsque je lis ton code, j'ai un peu l'impression que tu passes à côté de la
puissance d'ASP.net qui te permet justement d'opter soit pour du code généré
(qui a certes quelques petits désavantages), soit, si tu n'oublie rien, pour
du code entièrement contrôlé côté serveur. Bien sûr, la deuxième option est
très compliquée mais saches que tu peux aller jusqu'à gérer l'indentation du
code généré ou encore corriger les petites erreurs qui font que les pages
aspx ne peuvent pas être conforme à xhtml1.0 strict.

Je t'invite donc à procéder ainsi (ça n'est qu'une approche parmis
d'autres):

Avant tout, si tu utilises Firefox, télécharges le plugin webdevelopper et,
pour IE la webdevelopper toolbar. Utilises les validateurs W3C, ils sont
vraiement très puissants et pratiques.

1°) préfères les classes de styles aux attributs styles des contrôles. En
nommant bien tes tags, tu t'apperçevra très vite que c'est plus facile à
gérer. En plus quand tu migreras vers Visual Studio 2008, tu verras que
c'est plus adapté.

2°) évites les constructions de contrôles ou même de tags par concaténation
de chaines. Utilises plutôt les html contrôles (et non les webcontrols).
Petit rappel, tu peux utiliser le htmlgenericcontrol pour créer tes divs.

3°) si tu le peux, essayes de bien comprendre la construction des contrôles
web personnalisés, c'est monstrueusement puissant.

Voici un peit exemple de code (notes que mon objet page hérite d'une classe
qui permet de corriger les erreurs xhtml strict donc une grande partie des
eventuelles erreurs sont corrigées juste avant l'envoi.

Dim colKeys As
System.Collections.Specialized.NameObjectCollectionBase.KeysCollection
Dim oTblInfo As HtmlTable
Dim oTr As HtmlTableRow
Dim oTd As HtmlTableCell
Dim intI As Int32

colKeys = Request.Form.Keys
If colKeys.Count > 0 Then
strFormName = colKeys(0).Split(":")(0)
strHidAction = Request.Form(strFormName & ":" & "hidAction")
strHidinsertinto = Request.Form(strFormName & ":" &
"hidinsertinto").ToLower
strHidinsertintolvl = Request.Form(strFormName & ":" &
"hidinsertintolvl")

oTblInfo = New HtmlTable
oTblInfo.Border = 1
oTblInfo.CellSpacing = 0
oTblInfo.CellPadding = 0
oTblInfo.Style.Add("empty-cells", "show")

oTr = New HtmlTableRow
oTd = New HtmlTableCell
oTd.InnerText = "form:"
oTr.Cells.Add(oTd)
oTd = New HtmlTableCell
oTd.InnerText = strFormName
oTr.Cells.Add(oTd)
oTblInfo.Rows.Add(oTr)

For intI = 0 To colKeys.Count - 1
oTr = New HtmlTableRow
oTd = New HtmlTableCell
oTd.InnerText = colKeys(intI)
oTr.Cells.Add(oTd)
oTd = New HtmlTableCell
oTd.InnerText = Request.Form(colKeys(intI))
oTr.Cells.Add(oTd)
oTblInfo.Rows.Add(oTr)
Next
divInfos.Controls.Add(oTblInfo)
Else
Request.Form.Add("form2:hidaction", "init")
Request.Form.Add("form2:hidinsertinto", "pnlMain_divRootChildren")
Request.Form.Add("form2:hidinsertintolvl", "0")
strFormName = colKeys(0).Split(":")(0)
strHidAction = Request.Form(strFormName & ":" & "hidAction")
strHidinsertinto = Request.Form(strFormName & ":" & "hidinsertinto")
strHidinsertintolvl = Request.Form(strFormName & ":" &
"hidinsertintolvl")
End If

Une telle utilisation permet réellement de contrôler ce qui sort...

Si tu as des questions, n'hésites pas...

++

Laurent Jordi
http://www.ezlogic.mc
http://www.laurentjordi.net
Nouveau blog : http://sossoa.blogspot.com/


"Gilles TOURREAU"
Le Tue, 11 Dec 2007 15:36:00 +0100, stefrs

Oui, enfin c'est très classique, voilà le début d'un tableau codé côté
serveur :

options.Text = "<Table style='width:800px;' cellpadding='0'
cellspacing='0'
border='0'>";
options.Text += "<td class='texte' style='width:170px;height:30px;'
valign='middle' align='center'><img src='images/image_temp.jpg'
hspace='5'
border='0' align='absmiddle' alt='Une sortie' />" + variable + "</td>";
...

C'est écrit dans un Label. Maintenant que j'y pense, je me dis que le
problème du <span style='display:... qui encadre une fois reconstitué
doit
venir de là. Comment faire autrement alors ? Un <div runat='server'... ?




Ok, et pouvez-vous montrer le code ASP .NET autour du contrôle "options" ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


OD
Le #12163111
> Lorsque vous codez des <table> côté serveur en Asp.Net 2005, la page
restituée encadre ces <table> dans des :

<span style="display:inline-block; ...




d'après ce que tu dis dans la suite tu affectes ça à un Label ?
tu devrais l'affecter à un Litteral plutôt

--


OD___
www.e-naxos.com
Publicité
Poster une réponse
Anonyme