Как захватить событие в ListView? - PullRequest
1 голос
/ 22 июня 2010

У меня есть ListView, который имеет кнопку в шаблоне элемента.Можно ли как-то определить, по какому элементу была нажата его кнопка из моего события OnClick?

Я смог сделать это с помощью приведенного ниже кода, но он показался грубым.Есть ли лучший способ сделать это?

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

ОБНОВЛЕНИЕ: удалось реализовать с помощью метода NamingContainer, который предложил один пользователь, и затем загадочно удалил свой ответ.Похоже, более безопасный способ, чем мой оригинальный метод:

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

Ответы [ 2 ]

1 голос
/ 22 июня 2010

Да, дайте кнопке имя команды, затем присоедините ее к ListView.ItemCommand; нажатие на кнопку запускает это событие, и оно имеет некоторые дополнительные особенности элемента списка, например ссылку на него через e.Item.

НТН.

0 голосов
/ 18 сентября 2014
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;

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...