0

我在 asp.net 网页表单页面上几乎没有控件,我想将代码隐藏函数链接到超链接以解析 URL

示例背后的 HTML 和代码

<asp:HyperLink ID="hyplnkVideo" runat="server" NavigateUrl='<%# this.getVideoPageURL()%>'>
     <div id="dAlbumCategory" class="AlbumCategoryIcon">
         <asp:Image ID="Image1" ImageUrl='~/Images/gallery/Videos.png' runat="server" />
     </div>
</asp:HyperLink>


protected String getVideoPageURL()
{
    string url;
    int PageID = Helper.GetPageIDbyName("Videos.aspx", Request["Language"]);
    url = "~/en/Videos.aspx?PageID=" + PageID + "&Language=" + Request["Language"];
    return url;
}

此超链接控件不在任何网格视图或中继器控件内。我尝试了几种方法,但由于某种原因它没有调用该函数。

我将不胜感激这方面的帮助

4

3 回答 3

1

以这种方式尝试...

<% getVideoPageURL(); %>
<asp:HyperLink ID="hyplnkVideo" runat="server">
 <div id="dAlbumCategory" class="AlbumCategoryIcon">
     <asp:Image ID="Image1" ImageUrl='~/Images/gallery/Videos.png' runat="server" />
 </div>

protected void getVideoPageURL()
{
string url;
int PageID = Helper.GetPageIDbyName("Videos.aspx", Request["Language"]);
url = "~/en/Videos.aspx?PageID=" + PageID + "&Language=" + Request["Language"];
hyplnkVideo.Attributes.Add("href", url);
}

这是运行代码..所以你可以试试

于 2012-07-08T13:14:53.710 回答
0

试试这个:

NavigateUrl="<%= getVideoPageURL() %>"

适当的标记应该是 <%=,而不是 <%#,因为 <%# 和 %> 标记表明您要运行数据绑定代码(例如,您从数据库返回的内容)。

于 2012-07-08T13:15:36.083 回答
0

自从提出此问题并将其标记为已解决以来已经有一段时间了。

但是,为了提供更合适的分辨率,请在页面加载或渲染时在页面代码隐藏中调用 DataBind。这将注入必要的 href 字符串。

于 2013-08-07T15:44:58.313 回答