如何在aspx页面中动态设置超链接控件的导航属性inline(不在gridview中)?动态设置超链接控件的导航属性内联
我试图做到以下,但它没有奏效。
<asp:HyperLink id="MyLink"
NavigateUrl="../mypage.aspx?id=<%= pageid %>"
runat="server">My Page</asp:HyperLink>
如何在aspx页面中动态设置超链接控件的导航属性inline(不在gridview中)?动态设置超链接控件的导航属性内联
我试图做到以下,但它没有奏效。
<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);
}
}
UPDATE:
现在@Marko伊凡诺夫斯基指出我的意见,这超链接是GridView
我没有在一开始发现的最简单的办法是使用数据绑定(<%#
语法)内:
<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>
你实际上可以在你的代码隐藏文件中写一个简单的字符串方法。
例
public string formatUrl(string pageId) {
return "../mypage.aspx?id=" + pageId;
}
,然后用它像..
<asp:HyperLink id="MyLink" NavigateUrl="<%= formatUrl(pageid) %>" runat="server">My Page</asp:HyperLink>
提供的pageid存在
这是我试过了,但代码没有得到运行,它出来的: 的http://本地主机/ mysite的/ <%= formatUrl(的pageid)%> – dtc 2010-08-29 09:43:33
@metanaito:相同。你解决了这个问题吗? – abatishchev 2011-11-19 14:39:00
<asp:TemplateField HeaderText="Name" HeaderStyle-Width="100">
<ItemTemplate>
<a href="f.aspx?id=<%# DataBinder.Eval(Container, "DataItem.i")%>">
<asp:Label ID="lblN" Font-Underline="true" runat="server" Width="80px" Text='<%#DataBinder.Eval(Container.DataItem,"n")%>' />
</a>
</ItemTemplate>
</asp:TemplateField>
他提到该链接在GridView中:) – Marko 2010-08-29 09:05:47
@Marko,对,谢谢你指出了这一点。我没有仔细阅读这个问题:-) – 2010-08-29 09:18:24
没有probs - +1的一个很好的解决方案 – Marko 2010-08-29 09:21:09