2010-06-22 4 views
1

J'ai un ListView qui a un bouton dans le modèle d'élément. Existe-t-il un moyen pour moi d'identifier quel élément a été cliqué sur le bouton de mon événement OnClick?Comment capturer un événement dans un ListView?

J'ai été capable de le faire avec le code ci-dessous, mais il semblait crufty. Y a-t-il une meilleure manière de faire cela?

((ListViewDataItem)((Button)sender).Parent.Parent) 

MISE À JOUR: était en mesure de mettre en œuvre selon la méthode NamingContainer qu'un utilisateur a suggéré, puis mystérieusement enlevé sa réponse. On dirait une manière plus sûre à faire que ma méthode originale:

((ListViewDataItem)((Button)sender).NamingContainer) 

Répondre

1

Oui, donnez le bouton un nom de commande, puis attacher à ListView.ItemCommand; cliquer sur le bouton déclenche cet événement, et il a quelques détails sur l'élément de la liste, comme une référence à celui-ci via e.Item.

HTH.

0
protected void RemoveButton_Click(object sender, EventArgs e) 
     { 
      ListViewDataItem item = ((ListViewDataItem)((Button)sender).NamingContainer); 
      //ListViewDataItem item = (ListViewDataItem)((LinkButton)sender).Parent; 

      int i = item.DisplayIndex; 
      DataTable dt = (DataTable)Session["cart"]; 
      dt.Rows[i].Delete(); 

      Listcart.DataSource = dt; 
      Listcart.DataBind(); 

      Label Lblcart = (Label)Page.Master.FindControl("Lbitem"); 
      Lblcart.Text = Listcart.Controls.Count.ToString(); 
      Session["quantity"] = Lblcart.Text; 
      Session["cart"] = dt; 
      GrandTotal(); 
      Session["amount"] = LbGrandTotal.Text; 

     } 
Questions connexes