IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Personnalisation d'un GridView


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 13
    Par défaut Personnalisation d'un GridView
    Bonjour,


    J'ai un pblm avec la personnalisation d'un gridview (affichage de lignes separator et de ligne datarow complémentaires pour avoir aérer la page).

    L'affichage est ok lors de l'initialisation. Par contre, la mise en forme disparait quand les données sont splittées sur plusieurs page et que j'affiche une page autre que la première voire quand je reviens après coup sur la 1ère page.
    J'ai suivi le principe présente par le site msdn ci-après : http://msdn.microsoft.com/en-us/libr...srtuics_topic4

    Le principe consiste à surcharger la méthode RENDER de ma page. Quand je suis en mode DEBUG, cette méthode est pourtant systématiquement bien exécutée que ce soit lors de l'init. ou par la suite lors de l'affichage d'une page autre.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
            protected override void Render(HtmlTextWriter writer)
            {
                Boolean changePtf=true;
                int index;
     
                // Reference the Table the GridView has been rendered into
                Table gvTable = (Table)this.gvListe.Controls[0];
     
     
                //foreach (TableRow gvRow in gvTable.Rows)
                foreach(GridViewRow gvRow in gvListe.Rows)
                {
                    //index = gvTable.Rows.GetRowIndex(gvRow);
                    index = gvTable.Rows.GetRowIndex(gvRow);
     
                    //int currentPtf = Convert.ToInt32(this.gvListe.DataKeys[row.RowIndex].Values[1]);
                    //int currentPtf = Convert.ToInt32(this.gvListe.DataKeys[realIndex].Values[1]);
                    //String currentPtf = gvRow.Cells[1].Text;
                    String strPtf = ((Label)gvRow.FindControl("lblPtf")).Text;
     
     
                    /*
                    if(currentCategory != lastCategory)
                    {
                        GridViewRow groupHeaderRow = 
                                    new GridViewRow(realIndex, realIndex, DataControlRowType.Separator, DataControlRowState.Normal);
     
                        TableCell newCell = new TableCell();
                        newCell.ColumnSpan = this.productsGrid.Columns.Count;
                        newCell.BackColor = System.Drawing.Color.FromArgb(233, 229, 229);
                        newCell.ForeColor = System.Drawing.Color.DarkGray;
                        newCell.Font.Bold = true;
     
                        switch(currentCategory)
                        {
                            case 515:
                            case 517:
                                newCell.Text = "Home Products";
                                break;
                            default:
                                newCell.Text = "Business Products";
                                break;
                        }
                    }
                    */
     
     
                    if (!String.IsNullOrEmpty(strPtf) & index != 1)
                    {
                        changePtf = true;
     
                        TableCell newCell = new TableCell();
                        newCell.ColumnSpan = this.gvListe.Columns.Count;
                        //newCell.CssClass = "gridviewSeparator";
                        newCell.BackColor = System.Drawing.Color.FromArgb(233, 229, 229);
                        //newCell.ForeColor = System.Drawing.Color.DarkGray;
                        newCell.Height = 10;
     
                        //GridViewRow groupHeaderRow = new GridViewRow(realIndex, realIndex, DataControlRowType.Separator, DataControlRowState.Normal);
                        GridViewRow separatorRow = new GridViewRow(index, index, DataControlRowType.Separator, DataControlRowState.Normal);
                        separatorRow.Cells.Add(newCell);
                        //separatorRow.CssClass = "gridviewSeparator";
     
                        gvTable.Controls.AddAt(index, separatorRow);
                        //gvTable.Rows.AddAt(index, separatorRow);
     
                    }
                    else
                    {
                        changePtf = false;
                    }
     
                    //((Label)gvRow.FindControl("lblTituDenom_bis")).Text = "toto";
                    //((Label)gvRow.FindControl("lblTituDenom_bis")).Visible = true;
                    //((Label)gvRow.FindControl("lblTituDenom")).Visible = false;
                    TableCell newCell1 = new TableCell();
                    newCell1.ColumnSpan = 4;
                    newCell1.Text = ((Label)gvRow.FindControl("lblPtfLibelle")).Text;
                    newCell1.HorizontalAlign = HorizontalAlign.Left;
     
                    TableCell newCell2 = new TableCell();
                    newCell2.ColumnSpan = 4;
                    newCell2.Text = ((Label)gvRow.FindControl("lblTituDenom")).Text;
                    newCell2.HorizontalAlign = HorizontalAlign.Left;
     
                    TableCell newCell3 = new TableCell();
                    newCell3.ColumnSpan = 3;
                    newCell3.Text = ((Label)gvRow.FindControl("lblRPDenom")).Text;
                    newCell3.HorizontalAlign = HorizontalAlign.Left;
     
     
                    //GridViewRow groupHeaderRow = new GridViewRow(realIndex, realIndex, DataControlRowType.Separator, DataControlRowState.Normal);
                    GridViewRow newRow = new GridViewRow(index, index, DataControlRowType.DataRow, DataControlRowState.Normal);
                    newRow.Cells.Add(newCell1);
                    newRow.Cells.Add(newCell2);
                    newRow.Cells.Add(newCell3);
                    //separatorRow.CssClass = "gridviewSeparator";
     
     
                    int newIndex;
                    if (index == 1)
                    {
                        newIndex = index + 1;
                    }
                    else
                    {
                        if (changePtf)
                        {
                            newIndex = index + 2;
                        }
                        else
                        {
                            newIndex = index + 1;
                        }
                    }
     
     
                    gvTable.Controls.AddAt(newIndex, newRow);
                    //gvTable.Rows.AddAt(newIndex, newRow);
     
     
                }
    Si qqun a une piste...

    Laurent

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 13
    Par défaut
    Je crois avoir trouvé l'origine de mon pblm.
    Le gridview est définit dans une balise UPDATEPANEL.
    j'ai défini un trigger comme présenté ci-après.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
        <asp:UpdatePanel ID="UpdatePanelResultat" runat="server" UpdateMode="conditional">
    <div class="bbcode_container">
    	<div class="bbcode_quote">
    		<div class="quote_container">
    			<div class="bbcode_quote_container"></div>
     
    				    <Triggers>
            <asp:PostBackTrigger ControlID="gvListe" />
        </Triggers>
     
    		</div>
    	</div>
    </div>    <ContentTemplate>
            <div>
     
                <div class="alignRight">
                    Résultats : <asp:Label ID="lblNbLignesTotal" runat="server" />
                </div>
                <div>
                    <table border="1" style="background-color:#E8F1F0">
                    <tr>
                    <td width="310" align="center"> Portefeuilles </td>
                    <td width="400" align="center"> Titulaires </td>
                    <td width="350" align="center"> Représentants légaux </td>
                    </tr>
     
                    <tr>
     
                    <asp:Label ID="lbl" runat="server" />
                    <asp:GridView ID="gvListe" runat="server"
                    BorderColor="#006666" BorderWidth="1px" AutoGenerateColumns="false"
                    width="100%" GridLines="both" ShowHeader="true" AllowSorting="true" AllowPaging="true" PageSize="20" OnPageIndexChanging="ChangePage"
                    EmptyDataText="Aucun résultat" CellPadding="2"  
                    OnRowDataBound="RowDataBound" Visible="true">
                    <HeaderStyle ForeColor="#006666" Font-Bold="True" BackColor="#E8F1F0" Font-Size="11px" HorizontalAlign="Center" />
                    <RowStyle BackColor="#F7F6F3" Font-Names="verdana" Font-Bold="true" Font-Size="10px" HorizontalAlign="Center" />
                    <EmptyDataRowStyle CssClass="emptyRow" />
                    <PagerStyle HorizontalAlign="center" BackColor="#E8F1F0" />
                    <Columns>
                        <asp:TemplateField HeaderText="Portefeuille" ItemStyle-Width="75px">
                            <ItemTemplate>
                                <asp:Label ID="lblPtf" runat="server" Text='<%# Eval ("PTF") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Libelle" Visible="false" ItemStyle-Width="100px">
                            <ItemTemplate>
                                <asp:Label ID="lblPtfLibelle" runat="server" Text='<%# Eval ("PTFLIB") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Géré" ItemStyle-Width="50px">
                            <ItemTemplate>
                                <asp:Label ID="lblPtfGere" runat="server" Text='<%# Eval ("PTFGERE") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Date ouverture" ItemStyle-Width="50px">
                            <ItemTemplate>
                                <asp:Label ID="lblPtfDtOuv" runat="server" Text='<%# Eval ("PTFDTOUV") %>' />
                                <asp:Image ID="imgAjouter" runat="server" ImageUrl="~/GUI/images/Icones/ajouter.gif" ImageAlign="AbsMiddle" CssClass="select" />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="" ItemStyle-Width="100px">
                            <ItemTemplate>
                                <asp:Label ID="colSep1" runat="server" Text='<%# Eval ("COLSEP1") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="N°" ItemStyle-Width="75px">
                            <ItemTemplate>
                                <asp:Label ID="lblTitu" runat="server" Text='<%# Eval ("TITUID") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Nom" Visible="false" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="150px">
                            <ItemTemplate>
                                <asp:Label ID="lblTituDenom" runat="server" Text='<%# Eval ("TITUDENOM") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Date de naissance" ItemStyle-Width="75px">
                            <ItemTemplate>
                                <asp:Label ID="lblTituDtNaiss" runat="server" Text='<%# Eval ("TITUDTNAISS") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Rôles" ItemStyle-Width="75px">
                            <ItemTemplate>
                                <asp:Label ID="lblTituRole" runat="server" Text='<%# Eval ("TITUROLE") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="" ItemStyle-Width="100px">
                            <ItemTemplate>
                                <asp:Label ID="colSep2" runat="server" Text='<%# Eval ("COLSEP2") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="N°" ItemStyle-Width="75px">
                            <ItemTemplate>
                                <asp:Label ID="lblRPID" runat="server" Text='<%# Eval ("RPID") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Nom" Visible="false" ItemStyle-Width="150px">
                            <ItemTemplate>
                                <asp:Label ID="lblRPDenom" runat="server" Text='<%# Eval ("RPDENOM") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Date de naissance" ItemStyle-Width="75px">
                            <ItemTemplate>
                                <asp:Label ID="lblRPDtNaiss" runat="server" Text='<%# Eval ("RPDTNAISS") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Rôles" ItemStyle-Width="75px">
                            <ItemTemplate>
                                <asp:Label ID="lblRPROLE" runat="server" Text='<%# Eval ("RPROLE") %>' />
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                    </asp:GridView>
     
                    </tr>
                    </table>
                </div>
            </div>
        </ContentTemplate>
        </asp:UpdatePanel>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/07/2010, 13h30
  2. export excel quand controle personnalise dans le gridview
    Par italiasky dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/04/2010, 16h04
  3. personnaliser une table GridView
    Par sky88 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/02/2010, 19h31
  4. Personnalisation Pagination GridView
    Par label55 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 01/04/2009, 21h42
  5. Réponses: 2
    Dernier message: 16/04/2007, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo