Non può ottenere la funzione Javascript per il fuoco da una casella di testo in un GridView

StackOverflow https://stackoverflow.com/questions/1330058

Domanda

ho una casella di testo in ItemTemplate di un GridView. Sul caso _RowDataBound aggiungo un attributo alla casella di testo in questo modo:

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

E semplicemente non si attiverà una funzione JS.

Ho provato a fare onClick, onBlur, OnKeyPress ... anche provato a cambiare il caso di: onclick, onblur, onkeypress ... nulla sembra essere in grado di sparare la mia funzione JS

.

altrove sulla stessa pagina ho:

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

(che textbox non è in un GridView) e questo funziona bene.

Sono totalmente bloccato e frustrato a questo punto perché sembra non importa quello che faccio, non posso ottenere questo campo testo per sparare una funzione JavaScript

È stato utile?

Soluzione

Si prega di eseguire il progetto e guardare il nome della casella di testo generato visualizzando il sorgente nel broswer (IE, Firefox, Safari, a prescindere). È probabile che tu vedi che il nome della casella di testo è cambiato. Grazie, ASP.

Non è possibile utilizzare il DOM per accedere agli elementi per nome perché sono rinominati per voi.

Altri suggerimenti

Per qualche ragione, l'eliminazione dei file temporanei di Internet e ricaricare la pagina non è stato sempre più nuovi .js. Ho dovuto scaricare il progetto e ri-costruirlo. Il che è strano perché non ho mai avuto a che fare prima per altri controlli

Grazie per il vostro input!

provare questo:

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);

o semplicemente

txtQuantity.Attributes["onkeypress"] =
    string.Format("javascript:CheckInputForNumeric (this);");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top