是否可以从Code Behind设置新的asp超链接

Chr*_*Dog 2 c# asp.net

我想知道是否有可能在aspx页面上有一个asp超链接,并在后面的代码中将它设置为Page_Load部分中的新超链接.我已经尝试了这个并且看起来不起作用,但是想要了解更多关于机制的知识(这是不起作用的,或者可以在页面生命周期的早期工作,或者为什么它不起作用).

示例代码

Aspx

<asp:HyperLink ID="myHyperLink" runat="server" />
Run Code Online (Sandbox Code Playgroud)

代码背后

var newHyperLink = new HyperLink();
newHyperLink.NavigateUrl= url;
newHyperLink.Text = "Hello World";
myHyperLink = newHyperLink;
Run Code Online (Sandbox Code Playgroud)

Dam*_*ehy 6

您不需要创建新控件,只需使用您声明的控件.你也没有使用正确的财产.

用以下代码替换你的代码:

myHyperLink.NavigateUrl = "http://url.com";
Run Code Online (Sandbox Code Playgroud)

我不相信你可以像你提到的那样覆盖控件,我认为这是通过父控件的控件集合添加或删除控件的情况.

也就是说,

<form id="form1" runat="server">
<div>
    <asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink>
</div>
</form>

    protected void Page_Load(object sender, EventArgs e)
    {
        HyperLink newHyperLink = new HyperLink();
        newHyperLink.NavigateUrl = "http://google.com";
        newHyperLink.Text = "Hello World";
        Page.Form.Controls.Remove(HyperLink1);
        Page.Form.Controls.Add(newHyperLink);
    }
Run Code Online (Sandbox Code Playgroud)