如何在后面的代码中访问 span id
Posted
技术标签:
【中文标题】如何在后面的代码中访问 span id【英文标题】:How to access span id in code behind 【发布时间】:2012-08-30 16:45:01 【问题描述】:我有一个带有以下控件的asp网站:
<span id="expTrainingShow" class="clsLink" style="margin-left: 20px;" onclick="GridChanger();">
+ Show Expired Continuing Education</span>
我想根据后面代码中设置的条件来隐藏它。我可以访问这样的跨度ID吗? (网站是用visual basic搭建的)
【问题讨论】:
【参考方案1】:您可以使用 Label
代替 html-span(也呈现为 span),或者您可以添加 runat="server"
。设置runat="server"
允许您像访问任何其他服务器控件一样通过其ID 访问代码中的HTML 元素。
<span id="expTrainingShow" runat="server" class="clsLink" style="margin-left: 20px;" onclick="GridChanger();" ></span>
代码隐藏中的某处(跨度是服务器端的HtmlGenericControl
):
expTrainingShow.InnerHtml = yourText ' set the text '
或
expTrainingShow.Visible = False ' hide it '
注意,服务器端的Visible=False
表示控件根本不在客户端呈现,因此它不存在于html中,只能在服务器端访问。
如果你只是想隐藏它但无论如何都要渲染它,你应该使用 CSS 或expTrainingShow.Style.Add("display","none")
。
【讨论】:
我们需要 onlick 函数来运行客户端。添加 runat="server" 会干扰该方法还是仅影响 span id 显示? 您可以使用runat=server
并将其用作任何其他html 控件。但请注意,如果您设置Visible=False
(请参阅我的编辑),它根本不会在客户端呈现。我只想隐藏但渲染它,你应该使用 css 或expTrainingShow.Style.Add("display","none")
。
我只需要它在可见时工作。您是说只要可见,onclick 方法(页面顶部的一些简单的客户端 javascript)就会在客户端执行?
您可以将它用作任何其他 html 控件,因此在客户端 runat=server
不存在并且 javascript 也可以。
System.Web.UI.HtmlControls 命名空间中 HTML 标签和 span 对应的 .net 控件是什么?我在类集合中找不到任何东西 - 有所有相关类型(文本、按钮、单选按钮等)的输入,但没有跨度和标签。有什么线索吗?那么我实际上需要的是能够以编程方式获得相应的控件类型(例如 Control c; if (c is HtmlLabel) c.innerText = "something" ;以上是关于如何在后面的代码中访问 span id的主要内容,如果未能解决你的问题,请参考以下文章