我在学习如何为asp.net制作服务器控件。我使用第三方服务器控件的DevExpress。我试图添加一个DevExpress按钮到我的服务器控件。服务器控件中的服务器控件ASP.NET
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);'。 – Candide 2012-07-12 17:19:16
如果在标记中使用,则只需要使用[@Register]注册控件,但不能在自定义控件中使用。它应该在控制范围内工作...尝试@Ingenu的建议,看看它是否有所作为... – 2012-07-12 17:23:46
其实我错了,它会使用btnTest.RenderControl(writer)注册devexpress控件;唯一的问题是它不会出现在设计视图中,除非在同一页面上有另一个devexpress控件。 (我修改了我的问题) – 2012-07-12 20:43:45