#c# #asp.net #listview
#c# #asp.net #listview
Вопрос:
Я создаю корзину покупок. Для заполнения элементов я использовал ListView. Существует опция, при которой пользователь может увеличить или уменьшить значение на 1 от количества для определенных элементов в текстовом поле. Я немного запутался, какую логику я должен использовать здесь.
OnItemCommand Я пробовал следующий код, но не работает.
private void cartItemsList_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName == "incrementButton") {
try {
int ID = e.CommandArgument;
Label mainQuantity = (Label)e.Item.FindControl("quantity");
mainQuantity.Text = mainQuantity.Text 1;
((Label)e.Item.FindControl("quantity")).Text = mainQuantity.Text;
} catch (Exception ex) {
Response.Write(ex);
}
}
}
Ошибка
ystem.InvalidCastException: невозможно привести объект типа ‘System.Web.UI.WebControls.Текстовое поле «для ввода»System.Web.UI.WebControls.Метка’. в cart.cartItemsList_ItemCommand(отправитель объекта, ListViewCommandEventArgs e)
Комментарии:
1. Исключение объясняет это; поле «Количество» — это не метка, а скорее текстовое поле. Попробуйте
TextBox mainQuantity = (TextBox)e.Item.FindControl("quantity");
2. @KeyurPATEL О, черт возьми. Я допустил такую глупую ошибку. В любом случае спасибо за помощь 🙂