动态地设置超级链接控件的NavigateUrl属性直列 [英] dynamically set hyperlink control's navigateurl property inline
问题描述
我如何动态地单独设置一个独立(而不是在GridView控件),超级链接控件的NavigateUrl属性内嵌在aspx页面?
我试图做到以下几点,但没有奏效。
< ASP:超链接的id =myLink的
NavigateUrl =../ mypage.aspx ID =<%=的pageid%>中
=服务器>我的页面< / ASP:超链接>
您可以在codebehind做到这一点:
保护无效的Page_Load(对象发件人,EventArgs的)
{
如果(!的IsPostBack)
{
字符串的pageid =123;
MyLink.NavigateUrl =的String.Format(../ mypage.aspx ID = {0}?的pageid);
}
}
更新:
现在的@Marko伊万诺夫指出我的意见,这个超链接是在的GridView
,我没有注意到在一开始最简单的办法是使用数据绑定( <%#
语法):
< ASP:TemplateColumn中>
<的ItemTemplate>
< ASP:超链接
的id =myLink的
NavigateUrl ='<%#的eval(的pageid,?〜/ mypage.aspx ID = {0})%>
=服务器>
我的页面
< / ASP:超链接>
< / ItemTemplate中>
< / ASP:TemplateColumn中>
在这种情况下,的pageid
是数据源的一个属性。
更新2:
你真的需要一台服务器端控件?怎么样:
< A HREF =<%= this.ResolveUrl(?〜/ mypage.aspx ID =+的pageid)%>>
我的页面
&所述; / a取代;
How can I dynamically set a stand alone(not in gridview) hyperlink control's navigateurl property inline in the aspx page?
I have tried to do the following, but it did not work.
<asp:HyperLink id="MyLink"
NavigateUrl="../mypage.aspx?id=<%= pageid %>"
runat="server">My Page</asp:HyperLink>
You could do this in the codebehind:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string pageid = "123";
MyLink.NavigateUrl = string.Format("../mypage.aspx?id={0}", pageid);
}
}
UPDATE:
Now that @Marko Ivanovski pointed me in the comments that this hyperlink is inside a GridView
which I didn't notice in the beginning the easiest would be to use databinding (<%#
syntax):
<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLink
id="MyLink"
NavigateUrl='<%# Eval("pageid", "~/mypage.aspx?id={0}") %>'
runat="server">
My Page
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
In this case pageid
is a property of the data source.
UPDATE 2:
Do you really need a server side control? How about:
<a href="<%= this.ResolveUrl("~/mypage.aspx?id=" + pageid) %>">
My Page
</a>
这篇关于动态地设置超级链接控件的NavigateUrl属性直列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!