2012-06-24 2 views
1

Je viens de commencer à apprendre ASP.Net. La nuit dernière, je travaillais sur Grid View dans lequel je remplis les données en donnant directement la commande à la base de données. Je n'ai défini aucun champ de modèle pour ma grille et j'ai réglé le bouton d'édition AutoGenerated sur true. Les données s'affichent correcectement mais en essayant de gérer l'événement de mise à jour je suis confronté à un problème car je suis incapable de récupérer la valeur de la cellule pour la ligne que je suis en train de mettre à jour. J'ai beaucoup googlé mais tous les exemples de récupération de valeur de cellule sont basés sur le champ template mais dans mon cas je ne définis pas les colonnes de la grille au moment du design. S'il vous plaît aidez-moi.Récupération de la valeur DataGrid Cell

Mon code est ci-dessous: (méthode GridView1_RowUpdating donne la valeur vide lorsque j'ai vérifié en appliquant le point de rupture)

private void FillGrid() 
     { 
      SqlConnection con = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=TestDatabase;Integrated security=true;"); 
      DataTable dt = new DataTable("Student"); 
      using (SqlDataAdapter adapter = new SqlDataAdapter("select name,age,Fathername,dob from student", con)) 
      { 
       adapter.Fill(dt); 
      } 
      GridView1.DataSource = dt; 
      GridView1.DataBind(); 
     } 
     protected void Button1_Click(object sender, EventArgs e) 
     { 
      FillGrid(); 
     } 

     protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
     { 
      //Response.Write("RowDataBoundEvent Occured"+" "+e.Row.RowType+"\n"); 
     } 

     protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
     { 
      GridView1.EditIndex = -1; 
      FillGrid(); 
     } 

     protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
     { 
      GridView1.EditIndex = e.NewEditIndex; 
      FillGrid(); 
     } 

     protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
     { 

      string name = GridView1.Rows[e.RowIndex].Cells[2].Text; 
      string age = GridView1.Rows[GridView1.EditIndex].Cells[3].Text; 
      string salary = GridView1.Rows[GridView1.EditIndex].Cells[4].Text; 
     } 

Répondre

0

Découvrez GridViewUpdateEventArgs.OldValues ​​et GridViewUpdateEventArgs.NewValues.

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    string name = e.NewValues[2]; 
    string age = e.NewValues[3]; 
    string salary = e.NewValues[4]; 
} 
+0

Monsieur, je reçois à l'index d'exception de gamme dans ce cas –

+0

je reçois Enfait nombre de 0 dans le dictionnaire e.newvalues ​​quand je l'ai fait montre rapide sur ce –

+0

Vérifiez ce SO message: http: //stackoverflow.com/questions/6641474/why-im-getting-gridviewupdateeventargsnewvalues-and-gridviewupdateeventargsol – alexm

Questions connexes