Pour modifier les données dans le contrôle DataGrid, veuillez utiliser la colonne "Modifier, Mettre à jour, Annuler" dans la "Colonne Bouton". Celles-ci peuvent être définies comme contrôle DataGrid dans le générateur de propriétés du
contrôle DataGrid (prenez le nom du contrôle dg1 comme nom de contrôle). exemple ), il y aura une colonne supplémentaire dans le contrôle dg1 sur la page. Chaque élément de cette colonne est un LinkButton/Button avec le texte "Edit".
Si vous cliquez sur le bouton "Modifier" d'une ligne, la ligne est en mode édition, le bouton "Modifier" est remplacé par les boutons "Mettre à jour" et "Annuler", et toutes les autres colonnes d'aide aux données non en lecture seule dans le La ligne sera Changez-la en un format de contrôle TextBox afin que les utilisateurs puissent l'éditer et la modifier.
Lorsque l'utilisateur modifie les données de la colonne de données non en lecture seule (dans le contrôle TextBox), clique sur le bouton "Mettre à jour", enregistre la nouvelle valeur (généralement dans la base de données), clique sur le bouton "Annuler", la ligne Quitter mode édition.
Afin d'obtenir l'effet de passer en mode d'édition de ligne en cliquant sur le bouton "Modifier", la méthode de gestion des événements EditCommand de dg1 doit être écrite. Afin d'obtenir l'effet d'enregistrer la nouvelle valeur en cliquant sur le bouton "Mettre à jour", la méthode de gestion des événements UpdateCommand de dg1 doit être écrite. Afin de cliquer sur le bouton "Annuler" pour quitter le mode d'édition de ligne, vous devez modifier la méthode de gestion des événements CancelCommand de dg1
1) Méthode de gestion des événements dg1.EditCommand - entrez dans l'édition de ligne. mode
-------------------------------------------------- ----
private void dg1_EditCommand (source de l'objet, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex; //Définit l'index de l'élément à modifier
binddg1(); //Méthode pour lier les données à dg1. Après avoir défini l'élément à modifier, il faut relier dg1
}
-------------------------------------------------- -------
2) Méthode de gestion des événements dg1.CancelCommand - Quitter le mode d'édition de ligne
-------------------------------------------------- -------
private void dg_CancelCommand (source de l'objet, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex; //L'index de l'élément modifié est -1, ce qui signifie qu'aucun élément n'est modifié.
binddg1(); //Après avoir réinitialisé EditItemIndex, il est nécessaire de relier dg1
}
-------------------------------------------------- -------
3) Méthode de gestion des événements dg1.UpdateCommand - Enregistrer les valeurs mises à jour Pour enregistrer les valeurs mises à jour, vous devez d'abord obtenir ces nouvelles valeurs à partir de la page. Dans la méthode de traitement événementiel, trois fonctions principales doivent être mises en œuvre :
Obtenez les valeurs mises à jour, mettez à jour ces valeurs et quittez le mode de mise à jour des lignes.
Généralement, les données affichées dans le contrôle DataGrid sont obtenues à partir de la table de base de données, la valeur mise à jour doit donc également être enregistrée dans la base de données. Vous pouvez utiliser une instruction SQL de mise à jour ou une procédure stockée pour effectuer la mise à jour.
Obtenir les valeurs des colonnes d'une page dans une ligne en mode édition nécessite quelques astuces. Prenons l'exemple des colonnes de liaison :
Récupère la valeur d'une colonne liée en lecture seule : e.Item.Cells[column index].Text //La colonne d'aide en lecture seule est dans un état non modifiable. Récupère la valeur d'une colonne liée non en lecture seule : ((TextBox)(e.Item. Cells[Column Index].Controls[0])).Text //En état d'édition,
la colonne d'aide en lecture seule est généralement la colonne de clé primaire du tableau. Sa valeur de colonne doit être. utilisés dans la clause Where de l'instruction de mise à jour. Généralement, ils ne sont pas mis à jour.
Exemple de code :
-------------------------------------------------- ---------
private void DataGrid1_UpdateCommand (source de l'objet, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//Colonne liée en lecture seule, dans un état non modifiable
chaîne customerid = e.Item.Cells[1].Text;
// Colonne liée non en lecture seule, en état d'édition
chaîne nom de l'entreprise = ((TextBox)(e.Item.Cells[2].Controls[0])).Text;
string city = ((TextBox)(e.Item.Cells[3].Controls[0])).Text;
String strSql = "mettre à jour les clients définit le nom de l'entreprise = '" + nom de l'entreprise +
"',city = '" + ville + "' où identifiant client = '" + identifiant client + "'";
executeSql(strSql); //Exécuter l'instruction update pour mettre à jour
DataGrid1.EditItemIndex = -1 //Quitter le mode d'édition de ligne;
binddg1();
}