我试图改变使用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>标签)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top