服务器端Javascript(aspx.cs)Attributes.Add代码更改标签的文本

时间:2009-05-09 23:06:45

标签: c# javascript asp.net attributes onclick

我正在尝试通过在page_load事件中使用服务器端JavaScript(onclick)和C#来更改标签的文本。例如,我想写下面的内容:

Label1.Attributes.Add("onclick", "Label2.text='new caption'")

有谁知道这个的正确代码?此外,这类代码是指什么;它只是C#中的JavaScript或JavaScript还是有特定的名称?最后,是否存在列出用于C#的control.attributes.add(“event”,“syntax”)代码选项的书籍或在线资源?

2 个答案:

答案 0 :(得分:2)

没有服务器端Javascript(除非您更改为实际使用Javascript作为服务器语言的ASP.NET以外的平台)。你正在做的是在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文档,例如span element的Internet Explorer文档。查看特定功能的文档时,请注意标准信息,因为它会告诉您它是在任何浏览器中工作还是仅在Internet Explorer中工作。

答案 1 :(得分:1)

上面的代码将JavaScript添加到客户端上呈现的服务器控件。请查看此MSDN文章 - Using JavaScript Along with ASP.NET以获取更多信息。

IIRC,您需要通过其ClientID引用Label2,并且需要编写一些JavaScript来更改标签的文本值(我认为ASP.NET标签会呈现为<span>标签)。< / p>