0

グリッドビュー内でテキストボックスを使用していますが、そのonkeyup関数が機能していないようです。

これが私のグリッドビューです

<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行+1つのヘッダー行を持っています...

4

3 に答える 3

2

交換

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

onkeyup="check(this);" // you are passing a reference of the element.
于 2010-02-25T09:03:51.553 に答える
0

これはオブジェクトではなく文字列として渡されるのでしょうか。おそらく次のようになります。

onkeyup = "check(this)

ただし、これはasp構文に起因する可能性があります。テストする良い方法は、アラートを出すか、firebugでconsole.logを使用して、関数に渡されているものを見つけることです。

console.log(el);

また

alert(el);

関数の最初の行として

于 2010-02-25T09:05:31.940 に答える
0

私はASPに精通していません:これに関する引用符は必要ですか?

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

よろしく、
Stijn

于 2010-02-25T09:06:24.807 に答える