0

asp.net Webフォームページにコントロールがほとんどなく、コードビハインド関数をハイパーリンクにリンクして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 に答える