<ContentTemplate>
<div class="detail_purchase_button">
<a class="commandbutton" href='/Courses?RestoreFilters=1'>Return to Catalog</a>
<%# linkAddToCart %>
</div>
</ContentTemplate>
string url = "/Cart?AddItem={0}", DataItemID;
linkAddToCart = new HyperLink();
linkAddToCart.CssClass = "commandbutton";
linkAddToCart.NavigateUrl = url;
linkAddToCart.Text = "Add To Cart";
锚标记内的按钮显示在页面上。但是,“超链接”按钮根本不显示。 第二个代码块在Page_Load事件中运行(我将它放到一个方法中,然后我将它放到一个方法中)并引用一个公共的超链接字段。
感谢您的帮助。
答案 0 :(得分:1)
通过演示文稿文件中的标记定义超链接控件。
<asp:HyperLink id="lnkAddToCart" runat="server" />
将它放在您需要的地方。您仍然可以在代码隐藏中引用其属性。
lnkAddToCart.CssClass = "commandbutton";
lnkAddToCart.NavigateUrl = url;
// etc.
如果要动态定义控件,则需要将其添加到适当的容器中,例如面板或占位符
<asp:Panel id="theContainer" runat="server" /> or
<asp:PlaceHolder id="theContainer" runat="server" />
...
// define the HyperLink as in your original code snippet
theContainer.Controls.Add(lnkAddToCart);
但是,除非您绝对需要动态创建控件,否则最好在设计时将其添加到ASPX。如果不需要一直显示,您可以随时设置Visible="false"
(代码中的标记,.Visible = false;
。
答案 1 :(得分:0)
你的问题看起来有点模糊,但我试图根据我的理解来解答。如果我误解了你的问题,请忽略。
无法像这样添加超链接。首先在contenttemplate中放置一个占位符(即面板),然后从后面的代码中将超链接添加到占位符中。
<a class="commandbutton" href='/Courses?RestoreFilters=1'>Return to Catalog</a>
<asp:Panel id="pnlLink" runat="server"></asp:Panel>
</div>
</ContentTemplate>
然后在
背后的代码中string url = "/Cart?AddItem={0}", DataItemID;
linkAddToCart = new HyperLink();
linkAddToCart.CssClass = "commandbutton";
linkAddToCart.NavigateUrl = url;
linkAddToCart.Text = "Add To Cart";
pnlLink.Controls.Add(linkAddToCart);
答案 2 :(得分:0)
尝试将ID设置为动态创建的linkAddToCart
控件。您的代码没有为其定义ID。话虽如此,我建议按照安东尼建议的方式这样做。我认为不需要做这种事情。如果您想要在某些情况下显示某些逻辑,只需在标记中使用Visible="false"
进行定义,并在需要时将其显示。