我正在构建一个扩展器控件。此控件源自普通控件。它的目的是在指定的目标控件之前/之后注入一些文本。我想这类似于 AJAX 日历扩展器的工作方式。所以它具有诸如TargetControlID
等之类的属性。
我不确定要连接目标控件的哪个事件,以便我可以在控件呈现之前/之后插入我的评论。
以图形方式表示我要完成的工作:
我只想在出现绿色破折号的地方发表评论。反正我可以控制...?
到目前为止我尝试过的源代码......
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
}
}
}