Bonjour à tous!
Je rencontre un problème dans un site que je développe actuellement :
Je dois générer un tableau indiquant les documents dont les adresses physiques sont enregistrée dans ma BDD, mais n'existent pas là ou ils devraient l'être.
Jusque la pas de soucis : requete de la liste des "url", verification de l'existance des fichiers (file.exist et file.length!=0).
je créée un tableau html via un string dans mon C#, et ensuite pour chacun des documents manquants, j'ajoute les info dans le tableau.
extrait du code c# de ma fonction fillMissingDoc() :
j'appelle cette fonction dans ma page aspx comme suit :
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 int i = 0; tab = "<table id=table_grid><tr id=tr_grid_ent><td>Titre</td><td>Type document</td><td>Ajouter</td></tr>"; while (reader.Read()) { dest = reader["savedest_document"].ToString(); docName = reader["titre_document"].ToString(); typedoc = reader["type_document"].ToString(); FileInfo file = new FileInfo(dest); if (!File.Exists(dest) || file.Length == 0) { FileUpload upl = new FileUpload(); upl.ID = reader["titre_document"].ToString(); string fileNameFab = upl.FileName.ToString(); //création du nom de fichier et de son url string saveLocation = fileSave + "doc"+typedoc+"\\" + docName; // upload du fichier sur serveur si renseigné if (upl.FileName.ToString() != "") { try { upl.PostedFile.SaveAs(saveLocation); } catch (DirectoryNotFoundException) { System.IO.Directory.CreateDirectory(fileSave + "\\doc"+typedoc); upl.PostedFile.SaveAs(saveLocation); } } //inscription de la ligne (css change 1 lig sur 2) if ((i % 2) == 0) { tab += "<tr class='tr_grid_lig1'>"; } else { tab += "<tr class='tr_grid_lig2'>"; } tab += "<td>" + docName + "</td><td>" + typedoc + "</td><td><input type='file' name='"+upl.ID+"' id='"+upl.ID+"' /></td>"; tab += "<td style='display:none'><input type='text' value='" + docName + "' id='titre" + i + "' /></td><td style='display:none'><input type='text' value='" + typedoc + "' id='type" + i + "' /></td></tr>"; i++; } } tab += "</table>"; oConnexion.Close(); return tab;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <% //On crée une instance de la class Methodes Methodes mesMethode = new Methodes(); //On inscrit le tableau qui contient une liste de fichier Response.Write(mesMethode.fillMissingDoc()); %>
Le problème : je ne parviens pas a récupérer les valeurs docName et typedoc qui sont inscrites automatiquement dans le tableau (en tant que texte "brut" dans les 2 premieres colones, ainsi que dans les 2 colones en display none étant des input text avec un id précis.
J'ai essayé Request["titre1"] et Request.Form["titre1"] pour tester, à la fois dans l'aspx et dans le c#, et de les mettre dans un label, mais rien a faire : Request[] me retourne vide dans les 2 cas, et Request.Form retourne vide en aspx, et ne fonctionne pas (erreur de compilation) dans le c#.
sachant que Request.Form ne possède pas mon tableau en attribut (AllKeys) :
[0] = "__EVENTTARGET"
[1] = "__EVENTARGUMENT"
[2] = "__VIEWSTATE"
[3] = "__EVENTVALIDATION"
[4] = "btnUpload"
btnUpload étant bien entendu le bouton qui valide mon post et me permet de parcourir l'HttpFilecollection afin d'obtenir les fichier des composants UploadFile.
Si quelqu'un a une solution, même s'il faut refaire le tableau différement, je suis preneur
Partager