如何动态更改html<;a>;标签
本文关键字:lt 标签 gt html 何动态 动态 | 更新日期: 2023-09-27 17:59:38
我想根据会话对象的值隐藏一个锚标记。我该怎么做?
假设您希望在服务器端执行此操作,则代码将是
<a id="MyLink" runat="server" ...
MyLink.Visible = Convert.ToBoolean(Session["MyKey"]);
请注意标记(aspx)文件中的runat="server"
,这对于在代码隐藏中引用控件非常重要。
将ID
和runat
属性添加到锚点:
<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隐藏链接。