c# - 服务器端 Javascript (aspx.cs) 属性。添加代码以更改标签的文本

标签 c# javascript asp.net attributes onclick

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

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

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

最佳答案

没有服务器端 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 文档,例如 span element 的 Internet Explorer 文档.查看特定功能的文档时,请注意标准信息,因为它会告诉您它是在任何浏览器中工作还是仅在 Internet Explorer 中工作。

关于c# - 服务器端 Javascript (aspx.cs) 属性。添加代码以更改标签的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/844275/

相关文章:

c# - .NET 应用程序是否有最大程序集数?

asp.net - 缓存 LINQ-SQL 对象和 DataContext 线程安全

c# - 如何使用简单注入(inject)器在 ASP.NET HttpModule 中正确注入(inject)构造函数/属性

c# - 为什么我的 C# 表单在显示时关闭?

c# - 表达式树中的访问方法组

javascript - XHR post 请求因 CORS 失败

javascript - 碎片化的 MP4 不显示在 Chrome 中

asp.net - SQL 存储过程无法返回值

c# - 将 'MailItem' 对象另存为 .msg 文件

javascript - 我的验证仅允许使用字符和空格的输入字段。我不太熟悉正则表达式,这只是为了