Impression Gridview - gestion des sauts de page [Résolu]

Messages postés
4
Date d'inscription
samedi 11 août 2007
Dernière intervention
16 août 2007
- - Dernière réponse : fiveAT
Messages postés
4
Date d'inscription
samedi 11 août 2007
Dernière intervention
16 août 2007
- 16 août 2007 à 14:40
Bonjour,

Je suis débutant en ASP.NET. J'utilise Visual Studio 2005 Standard et je code en VB.

Mon problème est le suivant: j'ai un gridview alimenté par ma base de données SQL Express. L'affichage est ok mais j'aimerais qu'à l'impression les lignes ne puissent pas être à cheval sur 2 pages...

J'ai essayé de lier mon contrôle à une CSS avec une classe du type:


body
{
}

.ligne
{

page-break-inside:
avoid;
}



<



asp
:
GridView



ID
="GridView1"



runat
="server"



AutoGenerateColumns
="False"



DataKeyNames
="dos_id"

DataSourceID
="SDSTableau"



Width
="100%"



AllowSorting
="True"



Font-Names
="Arial"



Font-Size
="8pt"




CssClass


="ligne">

<
Columns
>

<
asp
:
TemplateField



HeaderText
="Agc"



SortExpression
="dos_agence">

<
EditItemTemplate
>

<
asp
:
TextBox



ID
="TextBox1"



runat
="server"



Text
='
<%# Bind("dos_agence") %>

'></
asp
:
TextBox
>

</
EditItemTemplate
>

<
ItemTemplate
>

<
asp
:
Label



ID
="Label1"



runat
="server"



OnDataBinding
="Label1_DataBinding"



Text
='
<%# Bind("dos_agence") %>

'></
asp
:
Label
>

</
ItemTemplate
>

</
asp
:
TemplateField
>

<
asp
:
BoundField



DataField
="dos_faire"



HeaderText
="A faire..."



SortExpression
="dos_faire"



/>
...

</
Columns
>

<
RowStyle



VerticalAlign
="Middle"



Wrap
="True"/>





<
HeaderStyle



BackColor
="#002E6E"



Font-Bold
="True"



Font-Names
="Arial"



Font-Size
="9pt"

ForeColor
="White"



Height
="50px"



HorizontalAlign
="Center"



VerticalAlign
="Middle"



/>

</
asp
:
GridView
>

Mais cela ne fonctionne pas...

Y'a-t-il une solution à mon problème sans changer de type de contrôle? Etant plus que débutant en CSS, est-ce que l'appel à ma classe "ligne" est correct?

D'avance merci de vos réponses.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
79
Date d'inscription
lundi 28 octobre 2002
Dernière intervention
21 octobre 2008
3
Merci
Je viens de vérifier sur mon 0'reilly sur les CSS, la propriété page-break-inside ne fonction que sur des éléments type "bloc" et je ne suis pas sur que le tr n'est pas de type bloc.
Essaye de mettre ta class dans ton ItemStyle (et HeaderStyle) de tes TemplateField.

le problème vient que le page-break-inside est d'une utilisation hasardeuse.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de zuff
Messages postés
4
Date d'inscription
samedi 11 août 2007
Dernière intervention
16 août 2007
3
Merci
Je confirme ce que je craignais plus haut. C'est IE qui pose problème. Les tests avec FireFox, Opera et Netscape ont tous fonctionné avec la simple indication:

tr
{
page-break-inside: avoid;
}

dans ma CSS sans autre lien avec mon contrôle GridView.

Merci Microsoft! 

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de fiveAT
Messages postés
79
Date d'inscription
lundi 28 octobre 2002
Dernière intervention
21 octobre 2008
0
Merci
CssClass
="ligne"
serait mieux dans RowStyle.


Car actuellement la classe est pour le GridView
entier et non pour une ligne donc il essaye que le gridview tienne sur une page si il ne peut pas il n'en tiens pas compte de ton saut page alors que si tu le place sur le rowstyle, cela fonctionnera pour chaque ligne séparement.
Commenter la réponse de zuff
Messages postés
4
Date d'inscription
samedi 11 août 2007
Dernière intervention
16 août 2007
0
Merci
Salut Zuff,

Merci de ta réponse. J'avais déjà essayé ça avant de poster et je viens de le réessayer. Malheureusement, cela ne fonctionne toujours pas .

Est-ce dû à la gestion "très moyenne" des CSS par IE (j'utilise IE7 et IE6) ???
Commenter la réponse de fiveAT
Messages postés
4
Date d'inscription
samedi 11 août 2007
Dernière intervention
16 août 2007
0
Merci
Il semble que page-break-inside ne soit pas appliqué de toute façon... J'ai mis d'autres paramètres dans ma classe (genre: text-decoration: underline;) et ils s'appliquent sans problème (ça n'est donc pas un problème de lien avec la CSS). De plus, en passant par le générateur de style de Visual Studio, il n'est fait mention nulle part de page-break-inside alors qu'on y trouve page-break-after et page-break-before.





Je crois qu'il faut que je me fasse une raison...

Merci de ton aide en tout cas et si tu as d'autres propositions, c'est volontiers!
Commenter la réponse de fiveAT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.