Я создал подкласс таблицы в моем проекте ASP.NET, который создает. В таблице используется класс, который форматирует и создает TableRows и TableCells, которые мы можем назвать RowCreator. Поэтому MyTable вызывает rowCreator.CreateRow() и возвращает TableRow с множеством положительных эффектов.Как получить правильный идентификатор клиента для моего текстового блока ASP.NET?
В этом TableRow есть TextBox, который должен запускать javascript-метод в событии onblur, который добавляется классом RowCreator.
textBox.Attributes.Add("onblur", "javascriptMethod('" + textbox.ClientID + "');");
Я также попытался создал подкласс TextBox, который реализует метод, который добавляет событие ONBLUR:
Attributes.Add("onblur", "javascriptMethod('" + this + "');")
который не работает. Идентификатор - это просто пространство имен подкласса текстового поля.
И метод JavaScript очень прост:
function javascriptMethod(boxId) { alert(boxId); }
Проблема, и я предполагаю, что это происходит потому, что контроль текстового поля не был добавлен в коллекцию элементов управления еще, что boxId не является надлежащим идентификатором клиента. Он совпадает с идентификатором на стороне сервера. Есть ли способ получить правильный идентификатор без необходимости добавлять строку с помощью Controls.Add на странице в первую очередь? Любые другие предложения?
Причина, по которой я делаю это, - это прочитать содержимое текстового поля из функции javascript всякий раз, когда он был изменен. Может быть, есть лучший способ сделать это?
Простое и элегантное решение. – Raithlin