2009-12-08 78 views
1

我需要创建一个自定义控件。开始构建自定义呈现控件的最佳方式?

基本上,我希望创造一个轻量级(并更好地使用jquery)手风琴控制。

对于开始做这样的事情有什么好的参考。我将从Panel中推导出它,因为它非常相似(只需要在最后添加一些JS),但我希望它只能添加某种类型的控件。我无法找到有关自定义渲染控件的任何信息。

任何人都可以指向我的一些参考?另外,对于HTML中的ID标签,您是否会使用UniqueID或ClientID?

回答

1

任何好的ASP.NET书都应该有一章专门介绍自定义控件。如果你想要做的一切是一些JS添加到面板我想你可能只是这样做:

public class AccordianPanel : System.Web.UI.WebControls.Panel 
{ 
    protected override void OnPreRender(EventArgs e) 
    { 
     base.Render(writer); 
     Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "accordianscript", ScriptText); 
    } 
} 

或者创建只是一个面板和ASCX的JavaScript的用户控件。限制允许的控件最多只会产生问题...

至于ID,请始终使用ClientID引用客户端脚本中的控件。

0

我会考虑使用AjaxControlToolkit,并查看那里的文档(在asp.net上)如何使用它来创建自定义控件或扩展器。这样可以轻松创建自定义控件,并且可以将JQuery嵌入到这些组件中。 ACT提供所有管道工程;使用MS ajax框架并将所有内容链接在一起的工作量较少。

我已经使用它,它工作得很好,但我必须承认我最近已经在我的自定义框架(http://www.codeplex.com/nucleo)中为我的AJAX组件放弃了它。那是因为其他原因。

+0

我实际上正在使用它,但我还需要使用一些jQuery代码。 – Earlz 2009-12-15 15:10:42

+0

您也可以使用JQuery;它可以无缝工作。我已经做到了(我在最新的DevConnection杂志上发表了一篇文章)...... – 2009-12-17 21:23:22

0

我错过了你的部分问题;要验证是否只允许某些控件,可以重写AddedControl方法,该方法在添加控件时调用。您可以在此方法中验证控件类型。或者,大多数控件实现一个自定义控件集合,我相信有一个CreateControlCollection可以用来创建一个自定义控件。此自定义控件集合验证Add/AddAt方法中的控件。