Это, вероятно, простой вопрос, но я не являюсь разработчиком ASP.NET, и я довольно застрял.
У меня есть простая процедура поиска, которая возвращает от нуля до нескольких сотен результатов. Каждый из них должен быть добавлен на страницу в виде кнопки, и я хочу установить текст кнопки и свойство CommandArgument, чтобы при нажатии кнопки я мог читать CommandArgument назад и реагировать соответствующим образом.
Однако, когда я нажимаю кнопку, событие вообще не запускается. Как заставить его работать?
Код для построения списка кнопок (упрощенный для удобства чтения) выглядит следующим образом:
foreach (SearchResult sr in searchResults)
{
Button result = new Button();
result.Text = sr.name;
result.CommandArgument = sr.ID.ToString();
AccountSearchResults.Controls.Add(result);
result.Click += new EventHandler(SearchResultClicked);
AccountSearchResults.Controls.Add(new LiteralControl("<br/>"));
}
В момент проверки я вставил в форму метку для добавления CommandArgument. Хотя этот код никогда не выполняется.
void SearchResultClicked(object sender, EventArgs e)
{
Label1.Text = ((Button)sender).CommandArgument;
}