2010-06-22 10 views
1

항목 템플릿에 Button이있는 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; 

     } 
관련 문제