【发布时间】:2012-07-12 12:21:14
【问题描述】:
我正在尝试学习如何为 asp.net 制作服务器控件。我使用的是第 3 方服务器控件的 DevExpress。我正在尝试将 DevExpress 按钮添加到我的服务器控件。
public class Class1 : CompositeControl
{
private DevExpress.Web.ASPxEditors.ASPxButton btnTest;
protected override void Render(HtmlTextWriter writer)
{
btnTest.RenderControl(writer);
}
protected override void CreateChildControls()
{
btnTest = new DevExpress.Web.ASPxEditors.ASPxButton();
btnTest.Text = "wazzzup";
Controls.Add(btnTest);
}
}
由于某种原因,除非在与我的服务器控件相同的页面上有另一个 devexpress 控件,否则该按钮不会显示在设计视图中。知道如何解决这个问题吗?
【问题讨论】:
-
尝试在
btnTest.RenderControl(writer);之后添加base.Render(writer);。 -
如果在标记中使用,您只需要使用[@Register]注册一个控件,而不是在自定义控件中。它应该在控制范围内工作......尝试执行@Ingenu的建议,看看它是否有所作为......
-
其实我错了,它会使用 btnTest.RenderControl(writer); 注册 devexpress 控件;唯一的问题是它不会出现在设计视图中,除非在同一页面上有另一个 devexpress 控件。 (我修改了我的问题)
标签: c# asp.net custom-server-controls servercontrols