控制标记应该在渲染页面上出现的位置?

时间:2012-09-20 18:06:35

标签: asp.net custom-controls page-lifecycle extending

我正在构建Extender控件。此控件源自正常控件。其目的是在指定的目标控件之前/之后注入一些文本。我想这与AJAX Calendar Extender的工作方式类似。所以它有TargetControlID等属性

我不确定连接目标控件的哪个事件,以便我可以在控件渲染之前/之后插入我的注释。

以图形方式表示我想要实现的目标:

enter image description here

我只想把评论放在绿色破折号出现的地方。无论如何,我可以控制......?

到目前为止我尝试使用的源代码......

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.IO;

namespace DropDownSubstitute
{
    /// <summary>
    /// 
    /// </summary>
    public class DropDownListExtender : Control
    {
        public string TargetControlID { get; set; }
        System.Web.UI.WebControls.DropDownList _ddl;
        protected override void OnInit(EventArgs e)
        {
            _ddl = this.Page.FindControl(this.TargetControlID) as DropDownList;
            if(_ddl == null) 
                throw new InvalidOperationException("TargetControlID for DropDownListExtender must be a valid ASP.NET DropDownList control");
            _ddl.PreRender += new EventHandler(RenderDropDown);

        }

        void RenderDropDown(object sender, EventArgs e)
        {
                //Desperately wanting to put a comment before the DropDownList renders
                // to the response 
        }

    }

}

0 个答案:

没有答案