题
它是可以防止asp.net 超级链接控制从联,即因此,它的出现作为一个标签,而实际上不具有对替代控制与标签?也许使用CSS或设置一个属性?
我知道,标记为残疾人工作但随后得以不同的方式显示(灰色显示)。
为澄清我的观点,我有一个清单的用户的名字在我的网页,其中都建立动态采用户的控制。大多数时候这些名称都可链接到一封电子邮件网页。但是,如果用户已被禁用的名称显示,在灰色的但是目前还链接到电子邮件网页。我想这些残疾人用户不链接。
我知道,真的,我应该替换他们用一个标签,但这似乎并不非常一样优雅只是去除的联能力using CSS说,(如果这是可能的)。他们已经显示在不同的颜色,使其明显,他们被禁止的用户。我只是需要关闭的链接。
解决方案
这听起来像一份工作!只是给一个特定的类名称所有的超级链接控制你想要的网址删除,然后应用以下JQuery段到底你页:
$(document).ready(function() {
$('a.NoLink').removeAttr('href')
});
所有的超级链接控制用类名"NoLink"将自动拥有所有他们的网址拆除和链接将出现的是什么多的文本。
一个单一的线备可以解决你的问题。
其他提示
我很好奇什么是你来完成。为什么使用的链路呢?
是这只是在格式化?在这种情况下,只使用一个 <span> 在HTML和使用样式,以使该格式匹配的链接。
或者你用链接,并附上一份击事件,其中你"return false;",这将使浏览器不导航-如果JS启用。
但是:是不是很混乱你的用户?为什么创造的东西,这看起来像一个链接,但并没有什么?
你能提供更多的细节?我有这个感觉,你是在试图解决的一个更大的问题,其中有一个方法更好的解决方案于削弱的链接:-)
一个超级链接控制将呈现为一个"a""/"标记不管是什么设置你做的。你可以定制CSS类使链接看起来像一个正常的标签。
或者你可以建立一个自定义的控制,继承了从系统。网。用户界面。支持此.超级链接,并复盖所呈现的方法
protected override void Render(HtmlTextWriter writer)
{
if (Enabled)
base.Render(writer);
else
{
writer.RenderBeginTag(HtmlTextWriterTag.Span);
writer.Write(Text);
writer.RenderEndTag(HtmlTextWriterTag.Span);
}
}
}
可能有点过分,但是它的工作对于您的要求。
加上我找到是有用的,有一个基asp:CustomHyperlink asp:CustomButton类在我的项目的文件。使得更易于定义的行为在整个项目。
如果你只是想要修改外的链接,以便为未来看起来像一个链接,可以设置CSS为您的"a"标记没有强调:
a: link, visited, hover, active {
text-decoration: none;
}
虽然我会建议不包括"悬浮"在这里是因为将不会有其他办法可以知道,这是一个链接。
无论如何,我同意@pilif在这里,这看起来像一个实用性的灾难。
如果你的意思是停止的链接激活,以通常的方式是链接"javascript:void(0);",即:
<a href="javascript:void(0);">foo</a>
这个应该的工作:
onclick="return false;"
如果不是,你可以改变的href"#"。使它的出现作为一个余下的案文是css,例如显示的箭头不是一方面是:
a.dummy {
cursor:default;
}
感谢所有的输入,它看起来像简短的回答是不你不能(也不很好无论如何)',所以我得这样做的困难的方式,并添加的条件代码。
如果您使用的是据绑定在asp.net 处理数据绑定的事件和不设置NavigateUrl如果用户是禁止的。
你有没有试过只是 不 设置NavigateUrl的财产?如果这不是设置,它可能仅呈现为一个跨度。
.融合的链接包装{指针的活动:无;}
另一个解决方案是适用于这类在你的超链接。
.avoid-clicks {
pointer-events: none;
}