【问题标题】:How to add an ImageButton to label using c#如何使用 c# 将 ImageButton 添加到标签
【发布时间】:2014-03-29 13:13:38
【问题描述】:
我正在尝试使用 C# 将 ImageButton 添加到标签,但我没有成功....有人可以帮助我吗?
谢谢
这就是我所做的-(删除是标签的名称)
var img = new ImageButton();
img.ID = "delete" + i;
img.ImageUrl = "images/1395958363_meanicons_57.png";
img.OnClientClick = "Delete_Click";
img.Width = 48;
img.Height = 38;
Delete.Page.Form.Controls.Add(img);
【问题讨论】:
标签:
c#
html
asp.net
visual-studio-2010
imagebutton
【解决方案1】:
如果 Delete 是标签的名称(我建议将其重命名为 DeleteLbl 或类似名称),那么您将转到标签,获取对页面的引用,然后是页面上的表单,然后将 ImageButton 添加到那。这很令人费解。相反,我认为您想将其直接添加到 Label 的控件中。
Delete.Controls.Add(img);
【解决方案2】:
我认为您不应该将 ImageButton 控件添加到 Label 控件。这看起来不像是对 Label 控件的语义使用(应该用于显示文本)。
但是,您通常希望将子控件添加到您尝试将其添加到的任何控件的 .Controls 集合中,而不是页面或表单的 .Controls 集合中。像这样:
Delete.Controls.Add(img);
您应该使用a PlaceHolder control 而不是标签:
<asp:PlaceHolder ID="myControlHolster" runat="server" />
然后将您的 ImageButton 添加到其中:
myControlHolster.Controls.Add(img);
【解决方案3】:
您可以使用以下代码,其中 2.jpg 是您的按钮图像:
<asp:button id="myButton" style="background-image:url('2.jpg'); background-color:red; cursor:hand;" Runat="server" Height="25px" BorderStyText="ButtonText" Width="200px" />