Salut,
je vous propose un tout nouveau jeu : chercher l'erreur

tout d abord mon code de mo fichier aspx.cs
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
 
  protected void Imprime_Click(object sender, EventArgs e)
  {
    verifColonne(GridView1);
    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = "application/vnd.ms-excel";
    Response.Charset = "";
    StringWriter monstringwriter = new StringWriter();
    HtmlTextWriter monhtmltextwriter = new HtmlTextWriter(monstringwriter);
    GridView1.RenderControl(monhtmltextwriter);
    Response.Write(monstringwriter.ToString());
    Response.End();
    GridView1.Dispose();
  }
 
   protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
  {
    Response.Redirect("./FicheAnomalieLecture.aspx?idfa=" + this.GridView1.SelectedRow.Cells[1].Text);
  }
 
  private void verifColonne(Control monDataGrid)
  {
    int nbControls = monDataGrid.Controls.Count - 1;
    while (nbControls >= 0)
    {
      verifColonne(monDataGrid.Controls[nbControls]);
      nbControls = nbControls - 1;
    }
    if (!((monDataGrid is TableCell)))
    {
      if (!((monDataGrid.GetType().GetProperty("SelectedItem") == null)))
      {
        LiteralControl controleLitteral1 = new LiteralControl();
        monDataGrid.Parent.Controls.Add(controleLitteral1);
        try
        {
          controleLitteral1.Text = ((string)(monDataGrid.GetType().GetProperty("SelectedItem").GetValue(monDataGrid, null)));
        }
        catch (Exception monException)
        {
          Response.Write(monException.Message);
        }
        monDataGrid.Parent.Controls.Remove(monDataGrid);
      }
      else
      {
        if (!((monDataGrid.GetType().GetProperty("Text") == null)))
        {
          LiteralControl controleLitteral2 = new LiteralControl();
          monDataGrid.Parent.Controls.Add(controleLitteral2);
          controleLitteral2.Text = ((string)(monDataGrid.GetType().GetProperty("Text").GetValue(monDataGrid, null)));
          monDataGrid.Parent.Controls.Remove(monDataGrid);
        }
      }
    }
  }
}
puis celui de mon fichier aspx
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
 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ListeFA.aspx.cs" Inherits="GestionFA_ListeFA" MasterPageFile="~/MasterPageNavigation.master" Title="Liste des fiches d'anomalie " %>
 
<%@ Register Src="../ControlesAccesPages/ControleAccesRoleVisionneur.ascx" TagName="ControleAccesRoleVisionneur"
    TagPrefix="uc1" %>
 
<asp:Content ID="content4" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
    <uc1:ControleAccesRoleVisionneur ID="ControleAccesRoleVisionneur1" runat="server" />
 
    <asp:Label ID="Label2" runat="server" Text="Liste des fiches d'anomalie :" Font-Underline="true" CssClass="titrePage"></asp:Label>
    <br />
    <asp:ImageButton ID="imprime" runat="server" OnClick="Imprime_Click" ImageUrl="~/images/imprim2.jpeg"/>
    <br />
    <div class="interfUtilisateurDecalageDroiteImportant">
    <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" DataSourceID="listeFA" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" Width="600px" AllowPaging="True" AllowSorting="True">
        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
        <EditRowStyle BackColor="#999999" />
        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333"/>
        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
        <Columns>
            <asp:CommandField ButtonType="Image" SelectImageUrl="~/images/collapse.png" SelectText=""
                ShowSelectButton="True" />
            <asp:BoundField DataField="__idDocument" HeaderText="Ref" SortExpression="Document.idDocument" />
            <asp:BoundField DataField="__nomDoc" HeaderText="Titre" SortExpression="nomDoc" />
            <asp:BoundField DataField="__statut" HeaderText="Statut" SortExpression="idStatut" />
            <asp:BoundField DataField="__gravite" HeaderText="Gravité" SortExpression="idGravite" />
            <asp:BoundField DataField="__ProduitConcerne" HeaderText="Produit" SortExpression="idProduit" />
            <asp:BoundField DataField="__moduleImpacte" HeaderText="Modules"  SortExpression="impactesur.idmodule"/>
            <asp:BoundField DataField="__dateCreation" HeaderText="Date Création" SortExpression="dateCreation" />
            <asp:BoundField DataField="__dateModification" HeaderText="Date Modification" SortExpression="dateDerniereModif" />
            <asp:BoundField DataField="__auteur" HeaderText="Auteur"  SortExpression="redige.idpersonne"/>
        </Columns>
        <EmptyDataTemplate>
            Aucune fiche d'anomalie actuellement.
        </EmptyDataTemplate>
    </asp:GridView>
    <br />
 
    <asp:ObjectDataSource ID="listeFA" SelectMethod="lesFichesAnomalies" runat="server" TypeName="Metiers.SystemeGestionDoc" OldValuesParameterFormatString="original_{0}" SortParameterName="SortExpression">
    </asp:ObjectDataSource>
 
</asp:Content>
le problème vient lors du clic sur mon bouton pour imprimer (qui en fait exporte vers Excel)
[FONT=Arial, Helvetica, Geneva, SunSans-Regular, sans-serif]Sur cette ligne
GridView1.RenderControl(monhtmltextwriter);

erreur :
Le contrôle 'ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder2_GridView1' de type 'GridView' doit être placé dans une balise form avec runat=server.


[/FONT]