ASP.NET超链接控件不在ascx webpart上呈现href

时间:2014-12-16 00:58:54

标签: asp.net sharepoint

我在.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";

3 个答案:

答案 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

我不知道这是否是编译错误,但这是我能找到的唯一合理的解决方案。