Не удается получить функцию Javascript для запуска из текстового поля в виде сетки - PullRequest
2 голосов
/ 25 августа 2009

У меня есть текстовое поле в ItemTemplate Gridview. В событии _RowDataBound я добавляю атрибут в текстовое поле следующим образом:

TextBox txtQuantity = (TextBox)e.Row.FindControl("txtQuantity");
txtQuantity.Attributes.Add("onkeypress", "CheckInputForNumeric(event)"); 

И он просто не будет запускать функцию JS.

Я пытался делать onClick, onBlur, onKeyPress ... даже пытался изменить регистр на: onclick, onblur, onkeypress ... Кажется, ничто не может запустить мою функцию JS.

в другом месте на той же странице у меня есть:

    txtAddMarkup.Attributes.Add("onkeypress", "CheckInputForNumeric(event)");

(это текстовое поле отсутствует в виде сетки) и это прекрасно работает.

Я полностью застрял и разочарован этим моментом, потому что кажется, что независимо от того, что я делаю, я не могу заставить это текстовое поле запускать функцию JavaScript

Ответы [ 3 ]

0 голосов
/ 25 августа 2009

По какой-то причине удаление временных интернет-файлов и перезагрузка страницы не получили новейшие .js Мне пришлось разгрузить проект и заново его собрать. Что странно, потому что я никогда не делал этого раньше для других элементов управления

спасибо за ваш вклад!

0 голосов
/ 01 декабря 2009

попробуйте это:

TextBox txtQuantity = (TextBox)e.Row.FindControl("txtQuantity");
txtQuantity.Attributes.Add("onkeypress", "CheckInputForNumeric(event)");

txtQuantity.Attributes["onkeypress"] =
    string.Format("javascript:CheckInputForNumeric(this,'{0}','{1}','{2}');", argument1, argument2, argument3);

Или просто

txtQuantity.Attributes["onkeypress"] =
    string.Format("javascript:CheckInputForNumeric (this);");
0 голосов
/ 25 августа 2009

Пожалуйста, запустите ваш проект и посмотрите на имя текстового поля, созданного путем просмотра источника в браузере (IE, Firefox, Safari и т. Д.). Скорее всего, вы увидите, что название текстового поля изменилось. Спасибо, ASP.

Вы не можете использовать DOM для доступа к элементам по имени, потому что они переименованы для вас.

...