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

fiveAT 4 Messages postés samedi 11 août 2007Date d'inscription 16 août 2007 Dernière intervention - 14 août 2007 à 15:57 - Dernière réponse : fiveAT 4 Messages postés samedi 11 août 2007Date d'inscription 16 août 2007 Dernière intervention
- 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

zuff 79 Messages postés lundi 28 octobre 2002Date d'inscription 21 octobre 2008 Dernière intervention - 16 août 2007 à 10:10
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de zuff
fiveAT 4 Messages postés samedi 11 août 2007Date d'inscription 16 août 2007 Dernière intervention - 16 août 2007 à 14:40
+3
Utile
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! 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de fiveAT
zuff 79 Messages postés lundi 28 octobre 2002Date d'inscription 21 octobre 2008 Dernière intervention - 16 août 2007 à 09:22
0
Utile
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
fiveAT 4 Messages postés samedi 11 août 2007Date d'inscription 16 août 2007 Dernière intervention - 16 août 2007 à 09:47
0
Utile
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
fiveAT 4 Messages postés samedi 11 août 2007Date d'inscription 16 août 2007 Dernière intervention - 16 août 2007 à 10:48
0
Utile
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.