asp.net - 动态设置超链接控件的 NavigateUrl 属性内联

标签 asp.net .net hyperlink webforms

如何在 aspx 页面中动态设置独立(不在 gridview 中)超链接控件的 NavigateUrl 属性内联?

我尝试执行以下操作,但没有成功。

<asp:HyperLink id="MyLink"
  NavigateUrl="../mypage.aspx?id=<%= pageid %>"
  runat="server">My Page</asp:HyperLink>

最佳答案

您可以在代码隐藏中执行此操作:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        string pageid = "123";
        MyLink.NavigateUrl = string.Format("../mypage.aspx?id={0}", pageid);
    }
}

更新:

现在@Marko Ivanovski 在评论中指出我这个超链接在 GridView 中。一开始我没有注意到最简单的方法是使用数据绑定(bind)(<%# 语法):
<asp:TemplateColumn>
    <ItemTemplate>
        <asp:HyperLink 
            id="MyLink" 
            NavigateUrl='<%# Eval("pageid", "~/mypage.aspx?id={0}")  %>'
            runat="server">
        My Page
        </asp:HyperLink>
    </ItemTemplate>
</asp:TemplateColumn>

在这种情况下 pageid是数据源的属性。

更新 2:

你真的需要服务器端控件吗?怎么样:
<a href="<%= this.ResolveUrl("~/mypage.aspx?id=" + pageid) %>">
    My Page
</a>

关于asp.net - 动态设置超链接控件的 NavigateUrl 属性内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3594143/

相关文章:

.net - Azure 应用服务环境变量是否带有 "WEBSITE_"前缀?

jquery - 模拟链接/按钮点击事件上的 POST

java - Wicket:创建指向 PDF 文件的链接

c# - 何时锁定 .net 中的线程安全集合? (&什么时候不锁定?)

javascript - devexpress 回调结果语法

c# - 如何将CSS应用于表格行

c# - string.Replace 不适用于报价

asp.net - 将 mvc 应用程序发布到 Web 服务器后无法生成 SSPI 上下文异常

javascript - 从禁用的链接开始

c# - 创建唯一图像(GUID 到图像)