【问题标题】:Best way to start building a custom-rendered control?开始构建自定义呈现控件的最佳方式?
【发布时间】:2012-03-12 10:53:19
【问题描述】:

我需要创建一个自定义控件。

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

有哪些很好的参考资料可以帮助您开始做这样的事情。我将从Panel 派生它,因为它非常相似(只需要在末尾添加一点 JS),但我希望它只能添加某种类型的控件。我无法找到有关自定义呈现控件的任何信息。

谁能给我一些参考资料?另外,对于 HTML 中的 ID 标签,您会使用 UniqueID 还是 ClientID?

【问题讨论】:

    标签: asp.net custom-controls


    【解决方案1】:

    任何好的 ASP.NET 书籍都应该有一章专门介绍自定义控件。如果您只想在 Panel 中添加一些 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来引用控件。

    【讨论】:

      【解决方案2】:

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

      我使用过它并且效果很好,但我必须承认我最近在我的自定义框架 (http://www.codeplex.com/nucleo) 中为我的一组 AJAX 组件废弃了它。那是因为其他原因。

      【讨论】:

      • 我实际上正在使用它,但我还需要使用一些 jquery 代码。
      • 你也可以使用JQuery;它无缝地工作。我已经做到了(我在最新的 DevConnection 杂志上有一篇文章这样做)......
      【解决方案3】:

      我错过了你的部分问题;要验证是否只允许某些控件,您可以重写 AdditionalControl 方法,该方法在添加控件时调用。您可以在此方法中验证控件类型。

      或者,大多数控件都实现了自定义控件集合,我相信有一个 CreateControlCollection 可以用来创建自定义控件。此自定义控件集合在 Add/AddAt 方法中验证控件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-02
        • 1970-01-01
        • 2011-03-21
        • 1970-01-01
        • 2011-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多