none
gridview asp.net transposé RRS feed

  • Question

  • bonjour à tous,

    je voudrais mettre les données de mon gridview en transposé, par exemple transformer le gridview suivant :

        champ1         champ2

       donnee1         donnee2

    en résultat suivant :

        champ1        donnee1

        champ2        donnee2

    en fait j'ai réussi à faire ceci en utilisant le code suivant :

    private DataTable GenerateTransposedTable(DataTable inputTable)
        {
            DataTable outputTable = new DataTable();
    
            // Add columns by looping rows
    
            // Header row's first column is same as in inputTable
            outputTable.Columns.Add(inputTable.Columns[0].ColumnName.ToString());
    
            // Header row's second column onwards, 'inputTable's first column taken
            foreach (DataRow inRow in inputTable.Rows)
            {
                string newColName = inRow[0].ToString();
                outputTable.Columns.Add(newColName);
            }
    
            // Add rows by looping columns        
            for (int rCount = 1; rCount <= inputTable.Columns.Count - 1; rCount++)
            {
                DataRow newRow = outputTable.NewRow();
    
                // First column is inputTable's Header row's second column
                newRow[0] = inputTable.Columns[rCount].ColumnName.ToString();
                for (int cCount = 0; cCount <= inputTable.Rows.Count - 1; cCount++)
                {
                    string colValue = inputTable.Rows[cCount][rCount].ToString();
                    newRow[cCount + 1] = colValue;
                }
                outputTable.Rows.Add(newRow);
            }
    
            return outputTable;
        }

    par contre l’aspect graphique du gridview généré est conforme au gridview standard, c'est à dire  :

     

    champ1        donnee1

    champ2        donnee2

    par contre ce que je veux c'est le résultat suivant :

         champ1        donnee1

        champ2        donnee2

    Merci d'avance pour votre aide.

    mardi 19 mars 2013 10:30

Réponses

  • Un extrait de code permet de colorer et mettre en gras les  cellules de colonne à gauche (key=0)

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) {

      e.Row.Cells[0].Font.Bold = true; //mettre en gras e.Row.Cells[0].ForeColor = System.Drawing.Color.Red;// colorer en rouge } }

    cordialement.


    Sami CHNITER Software Engineer



    • Modifié Sami CHNITER mardi 19 mars 2013 12:45
    • Marqué comme réponse scania113 mardi 19 mars 2013 16:14
    mardi 19 mars 2013 12:41

Toutes les réponses