我正在尝试通过在page_load事件中使用服务器端JavaScript(onclick)和C#来更改标签的文本。例如,我想写下面的内容:
Label1.Attributes.Add("onclick", "Label2.text='new caption'")
有谁知道这个的正确代码?此外,这类代码是指什么;它只是C#中的JavaScript或JavaScript还是有特定的名称?最后,是否存在列出用于C#的control.attributes.add(“event”,“syntax”)代码选项的书籍或在线资源?
答案 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以获取更多信息。
Label2
,并且需要编写一些JavaScript来更改标签的文本值(我认为ASP.NET标签会呈现为<span>
标签)。< / p>