Pergunta

Eu tenho um controle literal na página (com alguns dados sobre ele). eu quero acessá-lo em javascript e quer colocar algum texto sobre ele. por favor me diga como posso acessar controle literal em JavaScript. (Eu estou usando asp.net)

Meu código em javascript (mas não de trabalho):

 lths = document.getElementById("<%= lblhs.ClientID %>");
 lths.innerHTML = 'this is text line"
Foi útil?

Solução

Você pode encontrá-lo usando document.getElementById('<%= myControl.ClientID %>') ou se você estiver usando o .NET 4.0 você pode configurar diretamente o campo id a ser puxado por javascript. Alternativamente, você pode usar seletores do jQuery . Seu código não está funcionando porque o controle Literal não processar como um elemento, apenas texto estático. Você pode colocar um intervalo em torno dele, ou usar um controle Label, que processa como uma extensão para você.

Outras dicas

Eu não acho que você pode acessar um controle literal do seu código cliente javascript porque um controle literal apenas a torna de valor puro, sem quaisquer marcas envolventes. Então, você realmente não tem um elemento que você poderia começar por id.

O que você poderia a está mudando o controle literal de um controle de rótulo. Isso torna como uma tag html extensão por padrão. Como que você pode selecioná-lo no lado do cliente.

Outra opção seria escrever uma extensão ou div tag em seu controle literal no lado do servidor como este:

myLiteral.Text = "<div id=\"myDiv\">Some Text here</div>"

no cliente, você pode selecionar o elemnt usando:

var myDiv = document.getElementById('myDiv');

Apenas para descartar o óbvio (uma vez que ninguém mencionou isso), este é um erro de sintaxe no JS:

lths.innerHTML = 'this is text line"

Não sei se isso foi um erro de digitação aqui, ou se você copiou do seu código. Você pode usar qualquer " ou ', mas não tanto para cercar uma corda. Além disso, você deve usar terminação ponto e vírgula como a melhor prática (embora não seja necessário).

lths.innerHTML = 'this is text line';

A técnica <%= myControl.ClientId %> não funciona quando você estiver usando páginas mestras. Isso poderia ser o caso. O que você pode fazer é: Tome um campo escondido. Salve o ID do rótulo no campo escondido. Acesse o atributo de valor para obter o ID e, em seguida, usar document.getElementByID('HiddenField.Value') para obter o controle.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top