Bonjour à tous,

j'ai une grannnnnnnnnde question à vous posez et j'espère trouver quelqu'un qui aura la gentillesse et le savoir pour me répondre ^^.

Je travail en ce moment sur Visual Studio 2012 pour un stage en .net .

J'ai une base de données oracle, une page "test.aspx" et une page de code behind "test.aspx.cs" .

J'aimerais récupérer dans ma base de données avec le code behind des informations pour créer un tableau (surement une gridview vu ce que l'on m'a conseillé auparavant) dynamiquement.
Pour l'instant, j'arrive à faire ça en créant un <asp.Table> dans mon "test.aspx" et en ajoutant des lignes de la façon suivante dans mon code behind :

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
 
 
// étape 1 : cherche les infos ds la base oracle 
OracleConnection oConnexion = new OracleConnection();
oConnexion.ConnectionString = "...";
 
oConnexion.Open();
 
string reqTest = "SELECT * FROM elts";
 
OracleCommand cmd = new OracleCommand(reqTest);
cmd.Connection = oConnexion;
 
OracleDataReader reader = cmd.ExecuteReader();
 
// étape 2 : créer les elements du tableau
 
TableRow nouvelleLigne = new TableRow();
 
...
TableCell qteTotale = new TableCell();
TableCell numHU = new TableCell();
TableCell qteHU = new TableCell();
 ...
 
// étape 3 : insère des valeurs dans ces elements
 
...
qteTotale.Text = reader.GetValue(9).ToString();
qteTotale.Attributes.Add("class", "tabG_qteTotale donneesOF ");
qteTotale.Attributes.Add("value", qteTotale.Text);
qteTotale.ID = "qteT" + cpt;
 
numHU.Text = reader.GetValue(10).ToString();
numHU.Attributes.Add("class", "tabG_numHU donneesOF ");
numHU.Attributes.Add("value", numHU.Text);
numHU.ID = "numHU" + cpt;
 
qteHU.Text = reader.GetValue(11).ToString();
qteHU.Attributes.Add("class", "tabG_qteHU donneesOF ");
qteHU.Attributes.Add("value", qteHU.Text);
qteHU.ID = "qteH" + cpt;
...
 
// étape 4 : insertion dans mon tableau côté ASP
 
nouvelleLigne.Cells.Add(qteTotale);
nouvelleLigne.Cells.Add(numHU);
nouvelleLigne.Cells.Add(qteHU);
 
tabG.Rows.Add(lignes[i]); //tabG est l'id de mon <asp:Table> dans "test.aspx"
Et voici le code ASP.net dans mon test.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
<asp:Table ID="tabG" runat="server" GridLines="Both">
 
     <asp:TableHeaderRow ID="TableHeaderRow1" runat="server">
          <asp:TableCell ColumnSpan="3" sel="n">
               <asp:Label ID="Label9" Text="Assignation HU" runat="server"></asp:Label>
          </asp:TableCell>
     </asp:TableHeaderRow>
 
     <asp:TableHeaderRow ID="TableHeaderRow2" runat="server">
           <asp:TableCell>
                 <asp:Label ID="Label10" Text="Qté totale" runat="server"></asp:Label>
           </asp:TableCell>
           <asp:TableCell>
                 <asp:Label ID="Label11" Text="N° HU" runat="server"></asp:Label>
           </asp:TableCell>
           <asp:TableCell>
                 <asp:Label ID="Label12" Text="Quantité" runat="server"></asp:Label>
           </asp:TableCell>
      </asp:TableHeaderRow>
 
</asp:Table>

Ces choses là fonctionnent, comme vous pouvez le voir dans l'étape 3 de mon code behind, je rajoute des class à mes objets car j'ai beaucoup d'action javascript à effectuer sur mes tableaux (trie, selection, drag&drop...)

Mon problème, et donc ma question est le suivant :
En utilisant <asp:Table> j'arrive grâce au code précédent à créer une structure de tableau HTML dans lequel j'arrive pour l'instant à faire certaines action javascript comme la selection ou le drag&drop (partiellement, je ne sais pas encore gérer le changements de valeur mais je verrais plus tard). Cependant, depuis quelques jours, je bloque sur le tri par colonne.
Mes questions : pensez-vous que je devrais utiliser un gridview plutôt qu'un <asp:Table> pour faire le tri par colonne ou connaissez-vous un moyen de le faire en jscript avec <asp:table> ? J'ai l'impression qu'en utilisant un gridview je ne pourrais pas gérer les class des mes cellules comme je le fais actuellement, non ?

Je crois que j'ai tous dit, j'espère que vous pourrez m'aider =D
Merci d'avance