Я создал подкласс Table в моем проекте ASP.NET, который создает. В таблице используется класс, который форматирует и создает TableRows и TableCells, которые мы можем назвать RowCreator. Поэтому MyTable вызывает rowCreator.CreateRow () и возвращает TableRow с большим количеством полезностей.
В этом 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);
}
Проблема в том, и я предполагаю, что это потому, что элемент управления textbox еще не был добавлен в коллекцию элементов управления, что boxId не является правильным идентификатором клиента. Он совпадает с идентификатором на стороне сервера. Есть ли способ получить правильный идентификатор без добавления строки с помощью Controls.Add на странице в первую очередь? Любые другие предложения?
Причина, по которой я даже делаю это, заключается в чтении содержимого текстового поля из функции javascript при каждом его изменении. Может быть, есть лучший способ сделать это?