在asp.net Web表单页面中使用Hyperlink控件绑定服务器端功能

时间:2012-07-08 12:30:31

标签: c# asp.net

我在asp.net网页表单页面上几乎没有控件,我想将函数后面的代码链接到Hyperlink来解析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;
}

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

我很感激这方面的帮助

3 个答案:

答案 0 :(得分: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);
}

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

答案 1 :(得分:0)

试试这个:

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

相应的标记为&lt;%=,而不是&lt;%#,因为&lt;%#和%&gt;标签表示您要运行数据绑定代码(例如,您从数据库返回的内容)。

答案 2 :(得分:0)

已经有一段时间了,因为这个问题被提出并被标记为已解决。

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