Récupérer valeur d'un input text dynamique
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() :
Code:
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; |
j'appelle cette fonction dans ma page aspx comme suit :
Code:
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 :ccool: