2011-01-15 5 views
0

J'ai un bouton dans le gridview dont le nom de commande est "hold" je veux quand je clique sur le bouton n hold de la première rangée alors les valeurs entières de rangée seront transfererd à default2.aspx ...Comment récupérer la valeur de ligne sélectionnée en utilisant la ligne de commande dans gridview?

et si je clique le maintenez le bouton de gridview deuxième rangée puis la valeur de la deuxième rangée sera transférée à Default2.aspx ,, comment faire cela?

i m en utilisant ... mais il transférer toujours la 1ère valeur de la ligne même je sélectionne la première ou la dernière rangée du milieu ..dans gridview ....

ce qui est erroné dans ce code?

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand 
     For Each myRow As GridViewRow In GridView1.Rows 
      'Find the checkbox 
      Dim lab5 As Label = DirectCast(myRow.FindControl("Label5"), Label) 
      If e.CommandName = "feedback" Then 
       Me.Response.Redirect("~/view_feedback.aspx?" & "serv_code=" & lab5.Text.ToString) 
      End If 
     Next 
    End Sub 

Répondre

0

essayer ce code

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand 
    If e.CommandName = "feedback" Then 
     Dim index As Integer = Convert.ToInt32(e.CommandArgument) 
     Dim myRow As GridViewRow = GridView1.Rows(index) 
     Dim lab5 As Label = DirectCast(myRow.FindControl("Label5"), Label) 
     Me.Response.Redirect("~/view_feedback.aspx?" & "serv_code=" & lab5.Text.ToString) 
    End If 
End Sub 
+0

La chaîne d'entrée n'était pas dans un format correct. – ClixNCash

+0

vous devez cocher Label5 existe ou Label5 a une valeur. peut être son parce que Label5 est nul – Binil

2

... en supposant que votre affichage arrière la page entière et ne pas utiliser ajax le GridView1_RowCommand sera transmis chaque fois que le bouton Hold est cliqué, immédiatement. Comme votre code est écrit maintenant, vous essayez de parcourir toutes les lignes et de les analyser à tour de rôle. Cependant, vous redirigez vers votre page view_feedback.aspx sur la première ligne si votre nom de commande est Feedback. La première ligne sera la seule à être traitée car votre redirection déplace l'exécution de la requête Web actuelle vers la nouvelle page.

Transmettez l'index de ligne à votre commande dans la propriété CommandArgument comme indiqué in this example et utilisez-le plutôt que de parcourir toutes les lignes (si vous ne traitez en tout cas qu'une seule ligne au clic d'un bouton).

Questions connexes