如何动态更改html <a> tag in asp.net</a>的可见性

时间:2011-06-21 04:26:51

标签: c# asp.net

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

5 个答案:

答案 0 :(得分:5)

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

之类的代码
<a id="MyLink" runat="server" ...

MyLink.Visible = Convert.ToBoolean(Session["MyKey"]);

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

答案 1 :(得分:4)

IDrunat属性添加到锚点:

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

在代码隐藏中设置可见性:

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

答案 2 :(得分:1)

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


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

答案 3 :(得分:1)

作为Alex,但为了整洁,我倾向于将可见性代码放在aspx标签内,如果它不是太长,例如:

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

还没有尝试过会话,但它已经使用了代码隐藏功能和绑定值,所以我不明白为什么它不适用于会话变量。

在相关的说明中,我没有设法直接以这种方式传递布尔值,因此使用了bool.Parse(“”)。不明白为什么它不会直接起作用,因为当你使用像Visible ='&lt;%#string.IsNullOrEmpty()%&gt;'...

这样的值时它会起作用

答案 4 :(得分:0)

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

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

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