开发者

Dynamically assigning properties on a non data bound ASP.NET control

For example, let's say I have a HyperLink:

<asp:HyperLink runat="server" Text="Foo" NavigateUrl="foo.aspx" />

How can I set the NavigateUrl on the server side, without having to go the code-behind?

This doesn't work of course:

<asp:HyperLink runat="server" Text="Foo" NavigateUrl="<%= urlString %>" />

(where urlString might be a string I created earlier in the page)

And this doesn't work because the HyperLink is not within a data bound control:

<asp:HyperLink runat="server" Text="Foo" NavigateUrl='<%# urlString %>' /&g开发者_JAVA技巧t;

I guess I could just use a standard anchor element:

<a href="<%= urlString %>">Foo</a>

But I'd rather not mix up HTML and ASP.NET controls, and it would be handy to be able to do this for other controls.

Surely there must be a way?


Try setting the property in an inline code block:

<asp:HyperLink runat="server" ID="MyLink" Text="Foo"  />
<% MyLink.NavigateUrl="foo.aspx"; %>


This doesn't work of course:

Of course it does.

And this doesn't work because the HyperLink is not within a data bound control:

Consider the Page as your data bound control. You need to calls it's DataBind method.

Page.DataBind();

Maybe you need to add an ID attribute as well. If that does not work, try to display a property instead of a variable.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜