我在.ascx上有一个超链接控件,如下所示:
<asp:HyperLink ID="hDocument" NavigateUrl="http://www.google.com" Text="Delegate Approval" Target="_blank" runat="server"></asp:HyperLink>
但是,当我导航到应该显示此URL的SharePoint页面时,超链接不可单击,并且HTML锚标记()中没有href,如下所示:
<a id="ctl00_ctl40_g_65ace0cb_fdf4_4d40_ae31_9736b2d39022_gvLevel1Approvals_ctl02_hDocument" target="_blank">Delegate Approval</a>
我在Hyperlink控件下放置了一个普通的HTML锚点,并且该工作正常。我不知道为什么Hyperlink控件在渲染时不会产生href属性。
编辑:
这是原始代码:
<asp:HyperLink ID="hDocument" runat="server"></asp:HyperLink>
背后的代码
HyperLink hDocument = (HyperLink)e.Row.FindControl("hDocument");
hDocument.Text = "Delegate Approval";
hDocument.NavigateUrl = // builiding URL here;
hDocument.Target = "_blank";
答案 0 :(得分:0)
我遇到了同样的问题,只能通过在代码隐藏( Page_Load )中设置 NavigateUrl 来解决问题。
答案 1 :(得分:0)
所以我们的情况是,它只是间歇性地工作,但95%的时间它没有工作。其他一切工作正常:在后面的代码中构建URL,设置链接文本,一切。我们无法弄清楚为什么href不会出现在客户端浏览器的页面上。最后,我最终切换到使用常规HTML锚标记并添加到System.Web.UI.HtmlControls命名空间中以查找锚并在后面的代码中修改它。
答案 2 :(得分:0)
我找到了解决方案。
在VB.net中
HyperLink1.Attributes.Add("href", "http://www.clarin.com")
在我的情况下,Visual Studio将ASPX转换为HTML5。 当VS将文档转换为HTML时 - 如果执行某些调试 - 您将看到:
<a NavigateURL="someurl" blablabla
但在HTML中找不到NavigateURL
。
您必须将NavigateURL
替换为href
。
我不知道这是否是编译错误,但这是我能找到的唯一合理的解决方案。