如何在后面的代码中访问 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的主要内容,如果未能解决你的问题,请参考以下文章

如何在后面的c#代码中将div添加到容器div

如何在后面的代码中获取使用 Raduploader 动态创建的文本框的值?

如何在后面的代码中绑定嵌入的图像

如何通过带有连字符的 ID 获取 html 控件?

如何实例化 Datagridview(在后面的代码中)

如何在后面的代码中更改 VirtualizingStackPanel 方向?