2010-02-25 2 views
0

Я использую текстовое поле внутри GridView и его OnKeyUp функция не похоже на работу ....ParentNode в Javascript, кажется, не работает для меня

Вот мой GridView

<asp:TemplateField> 
    <HeaderStyle Width="12%" /> 
    <HeaderTemplate> 
    Advance Detucted 
    </HeaderTemplate> 
    <ItemTemplate> 
    <asp:TextBox ID="TxtAdvanceDeducted" runat="server" 
CssClass="text_box_height_14_width_50" onkeyup="check('this');"></asp:TextBox> 
    </ItemTemplate> 
    <ItemStyle Width="12%" HorizontalAlign="Center" /> 
    </asp:TemplateField> 

И моя функция Javascript,

var table = el.parentNode.parentNode.parentNode; 
for (var y = 0; y < table.rows.length; y++) 
{ 
    for (var x = 0; x < table.rows[y].cells.length; x++) 
    { 
     if (table.rows[y].cells[x] == el) 
     { 
      alert("Row:" + y + " Cell: " + x); 
     } 
    } 
} 

Когда осмотрены через панель WebDeveloper я получил ошибку,

el.parentNode is undefined

Любое предложение ...

alert(table.rows.length) дал мне 3 ... Но у меня есть 2 строки + один заголовок строки ...

ответ

2

Replace

onkeyup="check('this');" // you are passing a string 'this' to the function. 

с

onkeyup="check(this);" // you are passing a reference of the element. 
+0

@rahul он работал, но я не могу получить уведомление ... –

+0

добавить некоторые оповещения внутри первой и второй для цикла, а также проверить –

0

это передается как строка, а не объект, возможно, должен быть:

OnKeyUp = "Проверка (это)

Это может быть вплоть до синтаксиса осины, хотя. Хороший способ тестирования - предупредить или использовать console.log в firebug, чтобы узнать, что передается функции, например.

console.log(el); 

или

alert(el); 

в первой строке функции

0

Я не знаком с ASP: есть кавычки вокруг это требуется?

check('this') => check(this) 

С уважением,
Стейн

+0

@TheStijin увидеть мой отредактированный вопрос –