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")?

Foi útil?

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

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