Bonjour,
J'exporte mon datagrid dans un fichier excel mais le problème est que les accents ne passent pas sous excel. J'ai pris une fonction trouvé sur internet mais qui ne marche pas

Lorsque je lance cette fonction avec mon datagrid en param j'ai une erreur du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
La collection Controls ne peut pas être modifiée, car le contrôle contient des blocs de code (c'est-à-dire <% ... %>).
voila le code de la fonction avec la ligne qui renvoie l'erreur en gras :
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
private void verifColonne(Control monDataGrid)
		{
			//On récupère le nombre de controles enfants composant le DataGrid
			int nbControls = monDataGrid.Controls.Count - 1;

			while (nbControls >= 0){
				verifColonne(monDataGrid.Controls[nbControls]);
				nbControls = nbControls - 1;
			}


			//Si la cellule ne contient pas du texte simple 
			if (!(monDataGrid is TableCell)){

				//Si le controle concerné à une prorpiété "Selected Item" alors...
				//Remarque : Seul les controles offrant des choix multiples ont une propriété "SelectedItem"
				if( monDataGrid.GetType().GetProperty("SelectedItem")!= null)
				{

					LiteralControl controleLitteral1 = new LiteralControl();
					monDataGrid.Parent.Controls.Add(controleLitteral1);
					try
					{
						//La cellule prend alors pour valeur le texte correspondant à la propriété "SelectedItem"
						controleLitteral1.Text = (string)monDataGrid.GetType().GetProperty("SelectedItem").GetValue(monDataGrid, null);
					}
					catch (Exception monException)
					{
						//On récupère l'exception en cas de problème
						Response.Write(monException.Message);
					}

					//Le controle concerné est retiré
					monDataGrid.Parent.Controls.Remove(monDataGrid);

				}
				else
				{

					// Si le controle concerné n'a pas de propriété "SelectedItem" alors on récupère le 
					// texte (s'il y en a un) de sa propriété "Text"
					if ((monDataGrid.GetType().GetProperty("Text") != null))
					{

						LiteralControl controleLitteral2 = new LiteralControl();
						monDataGrid.Parent.Controls.Add(controleLitteral2);
						// On attribue le texte de la propriété "Text" à la cellule concernée
						controleLitteral2.Text = (string)monDataGrid.GetType().GetProperty("Text").GetValue(monDataGrid, null);
						monDataGrid.Parent.Controls.Remove(monDataGrid);

					}


				}


			}
Si vous avez une idée de comment faire pour corriger cette fonction ou si vous avez un autre moyen de formatter mon datagrid pour qu'il s'exporte sous excel, n'hesitez pas.

Merci de vos réponses.