【发布时间】:2011-11-18 18:38:19
【问题描述】:
我正在创建一个自定义控件,我希望它可以从 Visual Studio 的工具箱中使用。该类看起来像:
[ToolboxData("<{0}:CustomPanel runat=server></{0}:CustomPanel>")]
public class CustomPanel : Panel
{
}
到目前为止,一切都很好。该控件继承自面板,一旦添加到工具箱中,就可以轻松地将其拖放到 aspx 页面上。我现在要做的是向此面板添加新控件,例如标签和一些基本的 HTML 标记。我尝试了以下但没有成功:
[ToolboxData("<{0}:CustomPanel runat=server></{0}:CustomPanel>")]
public class CustomPanel : Panel
{
protected override void OnInit(EventArgs e)
{
Label name = new Label();
name.Text = "Hello jdecuyer!";
this.Controls.Add(name);
base.OnInit(e);
}
}
有什么想法吗?
【问题讨论】:
-
您必须在面板中提供一个位置才能显示标签。为什么不使用 Visual Studio 将标签放在面板上,然后添加面板,标签已经存在?您也没有将标签添加到面板,除非“this”是面板而不是页面,否则您的不完整代码很难解决。
-
假设
OnInit样本在CustomPanel中,您的代码看起来是正确的。什么不工作? -
是的,“this”是面板,我刚刚又编辑了我的类的代码,抱歉不够清楚。虽然没有抛出错误,但面板内没有显示任何标签。感谢您的意见。