Supposons qu'il existe une table Produit avec des champs (Id, Nom, Quantité,...) et que nous souhaitons mettre à jour la valeur Quantité par lots en une seule fois.
Tout d'abord, dans Gridview, la colonne Quantité est affichée sous la forme TemplateField, les autres propriétés de la colonne sont définies en lecture seule et le format d'affichage est défini sur TextBox.
<asp:TemplateField HeaderText="Quantité">
<Modèle d'élément>
<asp:TextBox ID="editQuantity" runat="server" CssClass="GridEditingRow"
Largeur="24px" MaxLength="2" Text='<%#Eval("Quantité")%>' />
</ItemTemplate>
</asp:TemplateField>
Ajoutez un contrôle Button sous GridView et définissez la méthode onclick comme updateButton_Click
Le code final updateButton_Click est :
protected void updateButton_Click (objet expéditeur, EventArgs e)
{
int rowsCount = grille.Rows.Count ;
GridViewRow gridRow ;
TextBox quantitéTextBox ;
chaîne
bool success
;
// Parcourt chaque ligne dans le GridView
pour (int i = 0; i < rowsCount; i++)
{
// Récupère la ligne actuelle
gridRow = grille.Rows[i];
// Utilisez DATAKEYS pour obtenir le numéro d'identification qui n'est pas affiché
Id = grille.DataKeys[i].Value.ToString();
//
quantitéTextBox = (TextBox)gridRow.FindControl("editQuantity");
// Convertit en entier, si l'entrée est un caractère illégal Int32.TryParse renvoie FALSE
if (Int32.TryParse(quantityTextBox.Text, quantité sortante))
{
// Appel de la méthode de la couche métier pour mettre à jour les données
succès = succès && BLL.UpdateItem(Id, quantité);
}
autre
{
//La mise à jour a échoué
succès = faux ;
}
// affiche les informations
statusLabel.Text = succès ?
"<br />Mise à jour réussie !<br />" :
"<br />La mise à jour a échoué !<br />";
}
// Relier GridVIEW
PopulateGridView();
}
http://www.cnblogs.com/timone/archive/2006/11/17/564171.html