GridView RowUpdating SqlDataSource.Mise à jour à partir du Code-behind

Donc je vais avoir un problème de faire une mise à jour dans un Gridview lors d'une OnRowUpdating événement.

Ce que je suis en train de faire est de définir la UpdateCommand dans un SqlDataSource puis mise à jour à l'aide de cette commande. L'événement est tir d'accord, mais lorsque l'événement est fait, il apparaît que la ligne ne jamais mises à jour.

C#:

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    SqlDataSource1.UpdateCommand = "UPDATE A_Table SET Something = @AValue WHERE ID = " + e.RowIndex;

    SqlDataSource1.Update();
}

Edit: Re-écrit mon exemple de commande de mise à jour...c'est vraiment une commande de mise à jour, pas une commande select haha.

  • Vous ne devriez pas avoir à faire quoi que ce soit dans le RowUpdating cas si vous avez la DataKeyNames mis en place pour la GridView (et vous avez le UpdateCommand définis dans le SQLDataSource1 balisage). L'appel de la Update() méthode ici serait la cause de la UPDATE à se produire deux fois.
  • est droit; si vous avez la DataKeyNames mis en place, l'appel de Update() de la RowUpdating gestionnaire sera la cause d'une StackOverflowExeption!
InformationsquelleAutor Derrick H | 2011-10-06