服务器端JavaScript(aspx.cs)Attributes.Add代码来更改标签的文本
-
20-08-2019 - |
题
我试图改变使用Page_Load事件中的服务器端JavaScript(的onclick)和C#标签的文本。例如,我想写类似如下:
Label1.Attributes.Add("onclick", "Label2.text='new caption'")
有谁知道这个正确的代码?此外,这是什么类型的代码简称;它只是JavaScript或JavaScript在C#或者是有一个特定的名称?最后,做一本书或网上资源的存在,列出control.attributes.add(“事件”,“语法”)代码与C#使用的选择?
解决方案
有没有服务器端JavaScript(除非您更改为ASP.NET以外的平台,在这里你实际使用JavaScript作为服务器语言)。你在做什么是添加到HTML标签的属性,并且代码将完全在客户端侧执行。
首先,让我们来看看它是如何在HTML中完成,无需在服务器端代码和服务器端控件:
<span onclick="document.getElementById('Label2').innerHTML='Thank you';">Click me</span>
<span id="Label2"></span>
要使用Label
控制代替,设置从服务器端代码onclick属性,可以执行这样的:
Label1.Attributes.Add("onclick", "document.getElementById('Label2').innerHTML='Thank you';");
此将只要控件不是一个命名容器内工作。如果是这样,控件的ID与容器的名称前缀,让他们独一无二的,所以你需要使用ClientID
属性来找出他们最后的id是什么:
Label1.Attributes.Add("onclick", "document.getElementById('" + Label2.ClientID + "').innerHTML='Thank you';");
在ClientID
总是包含可以用来访问从JavaScript中的元素的ID,所以最后的代码始终工作不管,如果控制在一个命名容器或没有。
要找出你可以使用什么属性,你应该看看HTML文档,例如为的跨度元件。当在documetation对于特定的特征看,发现标准的信息,因为这会告诉你,如果它工作在任何浏览器,或只是在Internet Explorer中。
其他提示
上面的代码增加JavaScript来渲染在客户端上的服务器控制。看看这个MSDN文章在 - 使用JavaScript随着ASP.NET 获得更多信息。
IIRC,你将需要由其客户端ID来引用Label2
并需要写一些JavaScript来改变标签的文本值(我认为ASP.NET标签得到呈现为<span>
标签)。