J'ai un site Web d'administration produit qui a été généré à l'aide de ASP.NET Dynamic Data et Entity Framework 4.1 (Code First).Dynamic Data with Entity Framework: lignes d'édition en bloc
J'ai commencé à créer un mode d'édition groupée de lignes. J'ai les contrôles d'édition pour les colonnes que je veux être en mesure de modifier en bloc (j'ai créé un nouvel attribut appelé EditableInBulk que je décore mes propriétés avec). J'ai également ajouté une nouvelle colonne dans le GridView avec une case à cocher qui indique si la ligne doit être modifiée en bloc ou non.
Il me reste maintenant à mettre à jour par programme les lignes que j'ai vérifiées avec "Edit".
Voici le code que j'utilise pour trouver les lignes qui ont été vérifiées, la chose manquante est de réellement mettre à jour les données et de persister.
// Find all items that will be edited
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType != DataControlRowType.DataRow)
continue;
// Fetch the item index of the rows that has "Edit" checked
var editMe = row.Cells[1].Controls.OfType<CheckBox>().Any(ch => ch.Checked);
if (editMe)
{
// Edit the fields in the row and persist
}
}
Je devrais pouvoir utiliser la méthode UpdateRow dans le contrôle GridView. Mais avant cela, j'ai besoin de mettre à jour les champs dans la rangée.
Est-ce que quelqu'un a une idée de comment je pourrais y parvenir?
La chose est aussi qu'il doit être générique. Devrait travailler avec chaque type d'entité qui a des colonnes que j'ai décorées avec mon attribut personnalisé "EditableInBulk". Il ne peut donc pas y avoir d'entité spécifique persistante.
J'ai commencé à modifier le fichier List.aspx fourni avec le projet Dynamic Data.