我有一个ListView,在项目模板中有一个Button。有没有办法让我确定从我的OnClick事件中点击了哪个项目的按钮?
我能够使用下面的代码完成它,但它看起来很狡猾。有更好的方法吗?
((ListViewDataItem)((Button)sender).Parent.Parent)
更新: 能够使用一个用户建议的NamingContainer方法实现,然后神秘地删除了他的答案。看起来比我原来的方法更安全:
((ListViewDataItem)((Button)sender).NamingContainer)
答案 0 :(得分:1)
是,给按钮一个命令名,然后附加到ListView.ItemCommand;单击该按钮将触发此事件,并且它具有关于列表项的更多细节,例如通过e.Item对其进行引用。
HTH。
答案 1 :(得分: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;
}