Urgent..Probleme pour mettre a jour la valeur d'un ItemTemplate dans une gridvi

japbreaker51 Messages postés 3 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 10 avril 2008 - 10 avril 2008 à 09:41
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 - 10 avril 2008 à 13:19
Bonjour à tous!

Voila j'ai un probleme. je suis debutant en asp.net.

J'ai un gridview lié a une base de donnée via une procedure stockée avec plusieurs templatefield qui contiennent eux des itemstemplates.

j'ai ça comme colonne:

colonne 2: BoundField:qte commandée

colonne 3: itemtemplate: qte livrée
colonne 4: itemtemplate: qte restante

je veux que quand l'utilisateur remplisse la quantité livrée la quantité restant se mette à jour (qte commandée - qte livrée). je suppose avec un cint(qte commandé)-cint(qtelivrée).

Comment faire en vb.net svp. je n'arrive pas a recuperer le numero de ligne mise a jour  et je n'arrive pas a mettre a jour mon templatefield qte restante.

Merci beaucoup d'avance pour vos reponses.

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
10 avril 2008 à 12:02
Salut

1 --> On ne mets pas d'urgent on repond quand on connait la réponse.
2 --> Tu t'es trompé de catégorie

3 --> Voici quand même une solution à mettre dans le champs texte d'un controle dans la page aspx
  Text='<%#  Convert.ToInt32(Eval("QtCom")) -Convert.ToInt32( Eval("QtLivre"))%>'

Bon coding
0
japbreaker51 Messages postés 3 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 10 avril 2008
10 avril 2008 à 12:19
merci beaucoup!!!

Navré si j'ai mal édite mon post.

Je vais tester ta solution. J'en ai trouvé une autre en parcourant tous le datagrind a l'aide d'un compteur mais c'est pas très propre...

une procédure à mettre dans le ontextchanged du templatefield "qte livrée"
Public Sub majqte(ByVal sender As Object, ByVal e As System.EventArgs)
Dim j As Integer = GridView1.Rows.Count - 1
While j <> -1
If labelqtelivr.Text = "" Then
Else
Dim recup_qte As String = GridView1.Rows(j).Cells(2).Text
labelqtecomm.Text = recup_qte
Dim recup_qtelivr As String = CType(GridView1.Rows(j).Cells(3).FindControl("qtelivre"), TextBox).Text
If IsInteger(recup_qtelivr) = False Then
labelqtelivr.Text = "0"

Else
labelqtelivr.Text = recup_qtelivr

End If
CType(GridView1.Rows(j).Cells(4).FindControl("restealivre"), TextBox).Text = CInt(GridView1.Rows(j).Cells(2).Text) - CInt(labelqtelivr.Text)
End If

j = j - 1

End While

End Sub
0
japbreaker51 Messages postés 3 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 10 avril 2008
10 avril 2008 à 12:29
la fonction isinteger associé que j'ai trouvé sur le net:
Public Shared Function IsInteger(ByVal strTmp As String) As Boolean
Dim objIntPattern As New System.Text.RegularExpressions.Regex("^[0-9]+[0-9]*$")
Return objIntPattern.IsMatch(strTmp)
End Function

et j'ai mis autopostback à true dans mon champs qtelivre
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
10 avril 2008 à 13:19
Et ma solution ne correspond pas à la demande.
Elle prend 10 fois moins de ligne et est plus propre ;-)
0