动态创建超链接

时间:2011-06-04 19:21:33

标签: asp.net

我正在尝试从代码隐藏创建一个超链接,但它并没有创建它我希望它的位置。

如果我查看我的源代码是在其他地方创建,从.aspx页面看起来似乎所有内容都存在于需要的位置。

的.aspx

<div class="AZ">
    <ol class="AZlist">   
            <asp:PlaceHolder runat="server" ID="AToZ"></asp:PlaceHolder>  
    </ol>
</div>

.codebehind

HyperLink links = new HyperLink();
links.Text =  "<li>" + CheckMe.ToString() + "</li>";
links.NavigateUrl = "<a href='#'" + CheckMe.ToString() + ">";
ph.Controls.Add(links); 

源代码:

.... .... ...

   <div class="AZ">
    <ol class="AZlist">
           // I WANT HYPERLINK HERE....!!!!!!!!!!!
    </ol>
    <br />
</div>
 </li>

但它在div区域外创建

<a href="#A"><li>A</li></a>

3 个答案:

答案 0 :(得分:1)

我认为你不应该将这些标签放在.text和.navigateurl属性中。只需将链接和文本放在其中即可。将<li>标记放在占位符周围。

答案 1 :(得分:0)

放弃你在这里做的方式。尝试制作你的ol标签runat =“server”并给它一个id。然后创建一个新的ListItem控件,添加超链接控件,并将ListItem添加到ol。

代码隐藏中有类似的东西:

dim anLi = new ListItem([can't remember exact parameters])
dim aHyperlink = new Hyperlink([whatever to initialize])
anLi.addControl(aHyperlink)
theOl.controls.add(anLi)

答案 2 :(得分:0)

为什么不使用asp:repeater。

然后,您可以使用标题/细节/页脚模板将所有标记放在aspx模板中。接下来,只需将代码隐藏和数据绑定中的文本和URL值转换为可绑定格式即可。

在后面的代码中保存标记,并且需要动态插入可能导致帖子后退的控件。