Urgent..Probleme pour mettre a jour la valeur d'un ItemTemplate dans une gridvi
japbreaker51
Messages postés3Date d'inscriptionlundi 26 février 2007StatutMembreDernière intervention10 avril 2008
-
10 avril 2008 à 09:41
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 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.
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.
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 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"))%>'
japbreaker51
Messages postés3Date d'inscriptionlundi 26 février 2007StatutMembreDernière intervention10 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
japbreaker51
Messages postés3Date d'inscriptionlundi 26 février 2007StatutMembreDernière intervention10 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