2010-06-22 62 views
1

我有一個ListView在項目模板中有一個按鈕。有沒有一種方法可以確定哪個項目的按鈕已經從我的OnClick事件中點擊?如何在ListView中捕獲事件?

我能夠用下面的代碼做到這一點,但它似乎是蹩腳的。有一個更好的方法嗎?

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

UPDATE: 之所以能夠使用NamingContainer方法一個用戶建議,然後神祕地帶走了他的答案來實現。似乎比我的原始方法更安全:

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

回答

1

是的,給按鈕一個命令名,然後附加到ListView.ItemCommand;點擊按鈕觸發這個事件,並且它具有關於列表項的更多細節,例如通過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; 

     }