Я хочу настроить функцию поиска на моем веб-сайте. Пользователь вводит некоторую информацию в текстовое поле и нажимает кнопку поиска. При нажатии на кнопку поиска выполняется поиск в базе данных с использованием текста в текстовом поле, а результаты отображаются в виде таблицы. Если текст в текстовом поле полностью соответствует одному результату из базы данных, а не отображать список результатов, на странице заполняется подробная информация о результате сопоставления.
Чтобы упростить точное сопоставление результатов, я хочу добавить рядом с каждым результатом кнопку, которая «выбирает» этот результат, заполняя текстовое поле текстом этого результата и, следовательно, заполняя страницу деталями. Вот что у меня есть.
После нажатия кнопки поиска, после проверки, чтобы убедиться, что результат соответствует точно, я создаю таблицу, которая содержит результаты и кнопки:
for(int x=0; x < res_list.Length; x++)
{
TableRow newRow = new TableRow();
TableCell textCell = new TableCell();
TableCell buttonCell = new TableCell();
buttonCell.ID = "bc" + x;
Button cellButton = new Button();
cellButton.ID = "btn" + x;
textCell.Text = res_list[x];
textCell.Attributes.Add("Width","60%");
cellButton.Text = x.ToString();
// cellButton.OnClientClick = "NameClick"; This property refers to client-side scripts, which I am not using.
cellButton.Click += new EventHandler(NameClick);
buttonCell.Controls.Add(cellButton);
newRow.Cells.Add(firstCell);
newRow.Cells.Add(buttonCell);
myTable.Rows.Add(newRow);
}
Я пробовал как метод OnClientClick, так и метод Click, показанный выше, оба из которых дали одинаковые результаты.
Моя функция NameClick выглядит следующим образом:
void NameClick(object sender, EventArgs e)
{
Button sendButton = (Button)sender;
int index = Int32.Parse(sendButton.Text);
SearchTextBox.Text = myTable.Rows[index].Cells[0].Text;
return;
}
Я установил точку останова в начале функции NameClick, и когда я нажимаю одну из этих кнопок, она никогда не достигается. Почему эта функция не вызывается моими кнопками?
РЕДАКТИРОВАТЬ: Я хочу сделать это без использования JavaScript, если это возможно.