1

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

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

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

4

2 回答 2

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';");

始终包含可用于从 Javascript 访问元素的ClientIDid,因此无论控件是否在命名容器中,最后一个代码始终有效。

要找出可以使用的属性,您应该查看 HTML 文档,例如用于span 元素的 Internet Explorer 文档。在查看特定功能的文档时,请注意标准信息,因为它会告诉您它是否适用于任何浏览器或仅适用于 Internet Explorer。

于 2009-05-09T23:25:57.423 回答
1

上面的代码将 JavaScript 添加到客户端上呈现的服务器控件。查看这篇 MSDN 文章 -将 JavaScript 与 ASP.NET 一起使用以了解更多信息。

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

于 2009-05-09T23:30:06.667 回答