Domanda

Io uso una casella di testo all'interno di una GridView e la sua onkeyup funzione non sembra funzionare ....

Ecco il mio 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>

E la mia funzione 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);
        }
    }
}

Quando ispezionato tramite barra degli strumenti webdeveloper ho ottenuto l'errore,

el.parentNode is undefined

Ogni suggerimento ...

alert(table.rows.length) mi ha dato 3 ... Ma io ho 2 file + una riga di intestazione ...

È stato utile?

Soluzione

Sostituire

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

con

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

Altri suggerimenti

è questo essere passato come stringa piuttosto che un oggetto è forse dovrebbe essere:

onkeyup = "controllo (questo)

Questo potrebbe essere giù per la sintassi asp però. Un buon modo per testare è vigile o utilizzare console.log in Firebug per scoprire ciò che viene passato alla funzione per es.

console.log(el);

o

alert(el);

come prima riga della funzione

Non ho dimestichezza con ASP:? Sono le citazioni intorno questo richieste

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

saluti,
Stijn

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top