Ответ, который вы ищете, прост и сложен. У меня тоже была эта проблема в моем проекте веб-сайта, поэтому я несколько дней работал в Интернете и не нашел того, что мне и вам было нужно.
Однажды я просто подумал об этой проблеме в одиночку и провел эксперименты в течение нескольких часов и, наконец, понял, что единственный простой способ узнать столбец, по которому была нажата кнопка, - это RowCommand event
из GridView
в CommandName property
из GridViewCommandEventArgs
. Возможно, более правильно и удобно редактировать столбцы GridView
в режиме конструктора и заменять поля команд на поля кнопок.
Вы можете указать любое string/text
, которое вы хотите, каждому полю кнопки в его CommandName
, поэтому в событии RowCommand
вы можете узнать, на какую кнопку нажали. Button1
или Button2
, но вы не хотите давать эти строки, потому что вы запрашиваете что-то, что кнопки должны выбрать и дать вам, поэтому CommandName
должно быть словом select , но это также может быть SELECT и Select и selecT и т. д.
Команда выбора может быть упомянута в CommandName
во многих формах, и все же система распознает ее. Так, например, если у вас есть два поля Button в GridView
, первый из которых CommandName
- это просто select , а другой - SELECT , затем, когда любой из них нажимается событие RowCommand
и
if (e.CommandName == "select")
{
Label1.Text = "You clicked first button";
}
else
{
Label1.Text = "You clicked second button";
}
и SelectedDataKey
вашего GridView
будут содержать запрошенные вами данные. То, что другие люди предложили в своем ответе отличить от CommandName
, установив кнопку 1 на select_one
и кнопку 2 на select_two
, поможет вам узнать, была ли нажата select_one
или другая, но SelectedDataKey
ваш GridView
останется null
или DataKey
экземпляром, который вообще не содержит нужной вам информации.
Другими словами, кнопки не будут выбирать любую необходимую информацию, поэтому очень важно следовать моему ответу. Это точное, идеальное и отличное решение вашей проблемы!