Pbrobleme tableau dynamique

filip24 Messages postés 36 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 12 mars 2008 - 3 août 2007 à 14:42
bizzard4 Messages postés 155 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 15 février 2009 - 6 août 2007 à 20:06
Bonjour,

J'ai un petit soucis.

Je crée un tableau dynamiquement avec 2 lignes et 10 colonnes.
La 1ere ligne : il y a les entetes et la seconde il y a les controles à inserer. et j'ai un boutoun OK qui ajoute une ligne supplementaire.

Le probléme c'est que quand je clique la 1ere fois sur ok ça m'ajoute bien la ligne, je reclique une deuxieme fois ça me rajoute pas la ligne supplémentaire.

Mon code

'mise en place de la 1ere ligne du tableau et ajout des composants dynamique

Dim row
As
New TableRow

Dim cell
As
New TableCell

Dim colonne
As
Integer, ligne
As
Integer

For ligne = 0
To 1

Dim Maligne
As
New TableRow()

' On ajoutera 10 case dans ce tableau

If ligne = 0
Then

For colonne = 0
To 10

Dim MaCase
As
New TableCell()

Select
Case colonne
Case 0MaCase.Text "Nø"MaCase.Width 25
Case 1MaCase.Text "Mvt"MaCase.Width 35
Case 2MaCase.Text "Date"MaCase.Width 70
Case 3MaCase.Text "Lib‚ll‚ Mouvement"MaCase.Width 125
Case 4MaCase.Text "Code"MaCase.Width 50
Case 5MaCase.Text "Libell‚ Mouvement"MaCase.Width 235
Case 6MaCase.Text "Paiement"MaCase.Width 80
Case 7MaCase.Text "Unit‚"MaCase.Width 45
Case 8MaCase.Text "Total Entr‚e"MaCase.Width 80
Case 9MaCase.Text "Sortie Caisse"MaCase.Width 80
Case 10MaCase.Text "Solde Caisse"MaCase.Width 80

End
SelectMaCase.CssClass =

"table"Maligne.Cells.Add(MaCase)

NextTabCaisse.CssClass =

"table"TabCaisse.Rows.Add(Maligne)

ElseAjoutLigne(ligne)

End
If

Next

Sub

AjoutLigne(ByVal Noligne AsInteger)

Dim colonne
As
Integer

Dim strSQL
As
String

Dim row
As
New TableRow

Dim cell
As
New TableCell

Dim Maligne
As
New TableRow()

For colonne = 0
To 10

Dim MaCase
As
New TableCell()

Select
Case colonne

Case 0MaCase.Text = txt_numcaisse.Text

MaCase.Width = 25

Case 1

Dim Mvt
As
New DropDownListMvt.ID =

"mvt" & NoligneMvt.Attributes.Add(

"onchange",
"mouvement()")Mvt.Items.Add(

"E")Mvt.Items.Add(

"S")MaCase.Controls.Add(Mvt)

Case 2MaCase.Controls.Add(

New TextBox)

Case 3

Dim Libelle
AsNew DropDownListLibelle.ID "libelle" & NolignestrSQL

"SELECT libelle, num" _&

" FROM MvtCaisse Where Sortie=True"DropList(strSQL, Libelle)

strSQL =

"SELECT abreviation, num" _&

" FROM pcexo Where code_adherent = '" & param &
"'" _&

" AND affich_caisse = true"DropList(strSQL, Libelle)

MaCase.Controls.Add(Libelle)

Case 4

Dim LibelleCode
AsNew DropDownListLibelleCode.ID "libellecode" & NolignestrSQL

"SELECT code, num" _&

" FROM MvtCaisse Where Sortie=True"DropList(strSQL, LibelleCode)

strSQL =

"SELECT code, num" _&

" FROM pcexo Where code_adherent = '" & param &
"'" _&

" AND affich_caisse = true"DropList(strSQL, LibelleCode)

MaCase.Controls.Add(LibelleCode)

Case 5MaCase.Controls.Add(

New TextBox)

Case 6

Dim Paiement
AsNew DropDownListPaiement.ID "paiement" & NolignestrSQL

"SELECT libelle, num " _&

" FROM MvtCaisse Where Sortie=false"DropList(strSQL, Paiement)

MaCase.Controls.Add(Paiement)

Case 7

Dim unite
As
New TextBoxunite.ID =

"unite" & NoligneMaCase.Controls.Add(unite)

Case 8

Dim entree
As
New TextBoxentree.ID =

"entree" & NoligneMaCase.Controls.Add(entree)

Case 9

Dim sortie
As
New TextBoxsortie.ID =

"sortie" & NoligneMaCase.Controls.Add(sortie)

Case 10

Dim solde
AsNew TextBoxsolde.ID "solde" & Nolignesolde.ReadOnly

TrueMaCase.Controls.Add(solde)

End
SelectMaCase.CssClass =

"table"Maligne.Cells.Add(MaCase)

NextTabCaisse.CssClass =

"table"TabCaisse.Rows.Add(Maligne)

End
Sub

7 réponses

bizzard4 Messages postés 155 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 15 février 2009
6 août 2007 à 08:35
Je connais se problème. C'est vraiment de la "marde" ... excusé cette expression. Je pense que la page est mit en cache par le navigateur ou le serveur et n'est pas recharger correctement. Par exemple moi jai un tableau dynamique qui affiche les profils et quand j'en supprime c'est correcte car c'est la première action de la page. Après si j'en supprime un 2eme alors la page reste pareille jusqu'à ce que je fasse F5 pour un refresh. Parfois j'essaye de faire :

Response.Redirect("lapage.aspx") mais des fois cela ne marche pas non plus. En tk si quelqu'un connait une solution je suis prenneur moi aussi.

Quand tu fait F5 ta ligne est telle la ?

~~ Cordialement Francois Gingras
0
filip24 Messages postés 36 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 12 mars 2008 3
6 août 2007 à 08:54
Meme pas!

Alors je vais une tester une autre solution :

Je créer un tableau de 100 lignes...98 seront invisibles, et ensuite des que je veux une ligne supplémentaire je rends une ligne visible.

Mon soucis pour l'ajout vient du fait que je rajoute une ligne avec le bouton OK, il me l'ajoute bien, mais il écrase la derniére ligne!
0
bizzard4 Messages postés 155 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 15 février 2009
6 août 2007 à 09:15
Humm moi j'yrait plus du côté de l'Ajax. C'est facile à utiliser avec le framework de Microsoft

http://www.asp.net/ajax/

~~ Cordialement Francois Gingras
0
filip24 Messages postés 36 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 12 mars 2008 3
6 août 2007 à 09:49
Meme avec de l'ajax de Microsoft c'est pareil...

Je ne comprends pas trop

La solution de créer mes 100 lignes, avec 98 lignes invisibles et de les rendres visibles une aprés une fonctionne, je l'utilise avec un bouton Ajax, ça fonctionne.

Le probleme c'est le chargement du tableau coté serveur que j'aime pas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bizzard4 Messages postés 155 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 15 février 2009
6 août 2007 à 10:06
Essaye ceci

Le chargement tu tableau se fait surement dans le pageLoad ?
Alors fait charger le tableau dans l'évènement du bouton. Pour cela cré un méthode qui charge ton tableau.

Dans le fond

Sub Page_Load()
    MakeTable()
End Sub

Sub bouton_Click()
    Modification()
    MakeTable()
    Response.Redirect("mapage.aspx")
End Sub

J'ai fait cela pour mon problème de tableau dans ma page de compte et ça marche maintenant.

~~ Cordialement Francois Gingras
0
filip24 Messages postés 36 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 12 mars 2008 3
6 août 2007 à 14:13
Pas bete comme solution.

Tu me fais recharger la page a chaque fois!...

Oui mon tableau se fait dans le page Load...Sinon j'ai un autre soucis toujours en rapport avec ce tableau...la création de ligne se fait...

Quand je charge ma page, ma ligne d'entete de colonne et la 1ere ligne se crée bien...mes fonctions javascript s'execute bien...

Quand je clique sur le OK en faisant un UpdatePanel avec AsyncPostbackTrigger, ma nouvelle ligne se crée, Youpi!, mais la fonction javascript ne s'execute plus...

Or quand je fais la meme opération meme sans utiliser ajax..la fonction marche.
0
bizzard4 Messages postés 155 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 15 février 2009
6 août 2007 à 20:06
C'est déjà po pire ! Moi j'utilise pas d'ajax et ca marche maintenant

~~ Cordialement Francois Gingras
0
Rejoignez-nous