2010-07-07 7 views
0

J'essaie de trouver un bon exemple de code pour mettre à jour une entrée de base de données dans mon contrôle listview. Je suppose que je devrais extraire l'ID de quelque part (un peu de contrôle d'étiquette?). J'utilise LINQtoSQL pour parler avec la base de données.Mise à jour de asp.net listview avec LINQ, par programmation

 protected void lvTargets_ItemUpdating(object sender, ListViewUpdateEventArgs e) 
    { 
     InventoryDataContext inventory = new InventoryDataContext(); 

     //Target target = from target in inventory.Targets 
     //    where target.ID == lvTargets.Items[e.ItemIndex].FindControl("ID") 
     // *** Not sure how to go about this ^^^ 

     //inventory.Targets.InsertOnSubmit(target); 
     //inventory.SubmitChanges(); 


     lvTargets.EditIndex = -1; 
     BindInventory(); 
    } 

Répondre

1

Vous pouvez obtenir l'ID des arguments d'événement soit comme

e.Keys["ID"] 
e.OldValues["ID"] 

en fonction de votre situation.

+0

Je maintenant: cible cible = (de t dans inventory.Targets où t.ID == (int) e.Keys [ "ID"] select t) .Single(); Maintenant, je dois déterminer comment mettre à jour l'objet cible avec les valeurs et soumettre les modifications à la base de données. target.Barcode = Convert.ToInt32 (lvTargets.Items [e.ItemIndex] .FindControl ("BarcodeTextBox")); Comment accéder aux valeurs des zones de texte dans EditItemTemplate? – omencat

Questions connexes