Asp.net 如何在ListView中捕获事件?
我有一个列表视图,它在项目模板中有一个按钮。有没有一种方法可以让我从OnClick事件中识别哪个项目的按钮被点击了 我可以用下面的代码来做,但它看起来很粗糙。有更好的方法吗Asp.net 如何在ListView中捕获事件?,asp.net,events,Asp.net,Events,我有一个列表视图,它在项目模板中有一个按钮。有没有一种方法可以让我从OnClick事件中识别哪个项目的按钮被点击了 我可以用下面的代码来做,但它看起来很粗糙。有更好的方法吗 ((ListViewDataItem)((Button)sender).Parent.Parent) 更新: 能够使用一个用户建议的NamingContainer方法实现,然后神秘地删除了他的答案。似乎比我原来的方法更安全: ((ListViewDataItem)((Button)sender).NamingContain
((ListViewDataItem)((Button)sender).Parent.Parent)
更新:
能够使用一个用户建议的NamingContainer方法实现,然后神秘地删除了他的答案。似乎比我原来的方法更安全:
((ListViewDataItem)((Button)sender).NamingContainer)
是,给按钮一个命令名,然后附加到ListView.ItemCommand;单击按钮将触发此事件,并且它具有有关列表项的更多详细信息,例如通过e.item对其进行引用
HTH.是,给按钮一个命令名,然后附加到ListView.ItemCommand;单击按钮将触发此事件,并且它具有有关列表项的更多详细信息,例如通过e.item对其进行引用 嗯
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;
}