【问题标题】:How to access span id in code behind如何在后面的代码中访问 span id
【发布时间】: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搭建的)

【问题讨论】:

    标签: asp.net vb.net code-behind html


    【解决方案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"} ;
    猜你喜欢
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    相关资源
    最近更新 更多