Não é possível obter a função Javascript ao fogo a partir de uma caixa de texto em um gridview

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

Pergunta

Eu tenho uma caixa de texto no ItemTemplate de um GridView. No caso _RowDataBound eu adicionar um atributo para a caixa de texto assim:

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

E isso simplesmente não vai disparar uma função JS.

Eu tentei fazer onClick, onBlur, onKeyPress ... mesmo tentei mudar o caso para:. Onclick, onblur, onkeypress ... nada parece ser capaz de disparar minha função JS

em outro lugar nessa mesma página eu tenho:

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

(que caixa de texto não está em um gridview) e isso funciona muito bem.

Estou totalmente preso e frustrado neste momento, porque parece que não importa o que eu faço, eu não posso obter esta caixa de texto para disparar uma função JavaScript

Foi útil?

Solução

Por favor executar o seu projeto e olhar para o nome da caixa de texto gerado por ver a fonte no broswer (IE, Firefox, Safari, qualquer que seja). Você provavelmente verá que o nome da caixa de texto mudou. Obrigado, ASP.

Você não pode usar o DOM para acessar os elementos pelo nome, porque eles estão renomeado para você.

Outras dicas

Por alguma razão, a exclusão de arquivos temporários de Internet e recarregar a página não estava recebendo os mais novos .js. Eu tinha de descarregar o projeto e re build-lo. O que é estranho porque eu nunca tive que fazer isso antes para outros controles

Obrigado por seus inputs!

Tente esta:

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

ou simplesmente

txtQuantity.Attributes["onkeypress"] =
    string.Format("javascript:CheckInputForNumeric (this);");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top