如何动态更改html<;a>;标签

本文关键字:lt 标签 gt html 何动态 动态 | 更新日期: 2023-09-27 17:59:38

我想根据会话对象的值隐藏一个锚标记。我该怎么做?

如何动态更改html<;a>;标签

假设您希望在服务器端执行此操作,则代码将是

<a id="MyLink" runat="server" ...
MyLink.Visible = Convert.ToBoolean(Session["MyKey"]);

请注意标记(aspx)文件中的runat="server",这对于在代码隐藏中引用控件非常重要。

IDrunat属性添加到锚点:

<a id="anchor" runat="server"></a>

设置代码背后的可见性:

protected void Page_Load(object sender, EventArgs e)
{
   anchor.Visible = (bool)Session["showAnchor"];
}

正如上面的Alex所说,但为了简洁起见,如果可见性代码不太长,我倾向于将其放在aspx标记中,比如:

<a id="aid" runat="server" href="link" Visible='<%# (Session["value"] != null) ? Session["value"] : bool.Parse("false") %>' >Text</a>

还没有尝试使用会话,但它已经使用了代码绑定函数和绑定值,所以我不明白为什么它不应该使用会话变量。

与此相关的是,我还没有设法以这种方式直接传递布尔值,因此使用了布尔值。分析(")。不明白为什么它不能直接工作,因为当您使用Visible='<%#这样的值时它就可以工作一串IsNullOrEmpty()%>'。。。

<a id="aid" runat="server" href="link">Text</a>

if (Session["value"] != null)
        {
            aid.Visible = true;
        }
        else
        {
            aid.Visible = false;
        }

这取决于您是想在回发/初始加载时隐藏链接,还是在页面已传递到客户端之后隐藏链接。

如果要在回发/初始加载时隐藏链接,可以将runat="server"属性添加到链接中,并在代码隐藏中设置其Visible属性。

如果您想隐藏客户端上已经存在的页面上的链接,可以使用Ajax调用轮询服务器,然后使用javascript隐藏链接。