Server-side Javascript (aspx) Código Attributes.Add Para alterar o texto de uma etiqueta
-
20-08-2019 - |
Pergunta
Eu estou tentando alterar o texto de um rótulo usando server-side JavaScript (onclick) e C # dentro do evento Page_Load. Por exemplo, eu gostaria de escrever algo como o seguinte:
Label1.Attributes.Add("onclick", "Label2.text='new caption'")
Alguém sabe o código correto para isso? Além disso, o que é este tipo de código referido; é apenas JavaScript ou JavaScript em C # ou há um nome específico? Por fim, faz um exist livro ou recurso online que lista as opções de control.attributes.add código para uso com C # ( "evento", "sintaxe")?
Solução
Não há Javascript do lado do servidor (a menos que você mudar para uma plataforma diferente do ASP.NET onde você realmente usar o Javascript como linguagem server). O que você está fazendo é adicionar um atributo à tag HTML, eo código será executado inteiramente no lado do cliente.
Primeiro, vamos ver como ele é feito em HTML sem os controles de código do lado do servidor e do lado do servidor:
<span onclick="document.getElementById('Label2').innerHTML='Thank you';">Click me</span>
<span id="Label2"></span>
Para usar controles Label
vez, definindo o atributo onclick do código do lado do servidor, você faria assim:
Label1.Attributes.Add("onclick", "document.getElementById('Label2').innerHTML='Thank you';");
Isto irá funcionar, desde que os controles não estão dentro de um contêiner de nomeação. Se eles são, o ID dos controles são precedidos com o nome do recipiente para mantê-los original, assim que você precisa para usar a propriedade ClientID
para descobrir o que sua id final é:
Label1.Attributes.Add("onclick", "document.getElementById('" + Label2.ClientID + "').innerHTML='Thank you';");
O ClientID
sempre contém o id que você pode usar para acessar o elemento de Javascript, assim que o último código sempre funciona independentemente se o controle está em um contêiner de nomeação ou não.
Para saber quais os atributos que você pode usar, você deve olhar para a documentação HTML, por exemplo, a documentação do Internet Explorer para o elemento span . Ao olhar para o documetation para um recurso específico, observe a informação Standards, como que vai dizer se ele funciona em qualquer navegador ou apenas no Internet Explorer.
Outras dicas
O código acima adiciona o JavaScript para um controle de servidor processado no cliente. Dê uma olhada neste artigo MSDN - Usando JavaScript Junto com ASP.NET para mais informações.
IIRC, você precisará Label2
referência pelo seu ClientID e terá de escrever algumas JavaScript para alterar o valor texto do rótulo (eu penso etiquetas ASP.NET são renderizadas como tags <span>
).