SetRenderMethodDelegate 方法
今天看代码发现一个有趣的方法。
System.Web.UI.Control 类的 SetRenderMethodDelegate()
这个方法允许控件接受一个委托来定制自身的 Render 行为,这样,在子控件里就可以重新定义父控件的 Render 方法,很灵活。IronPython for ASP.NET 的实现就利用到这个特性了。
例子:
System.Web.UI.Control 类的 SetRenderMethodDelegate()
这个方法允许控件接受一个委托来定制自身的 Render 行为,这样,在子控件里就可以重新定义父控件的 Render 方法,很灵活。IronPython for ASP.NET 的实现就利用到这个特性了。
例子:
public class SnippetControl: BaseCodeControl {
protected override void OnInit(EventArgs e) {
base.OnInit(e);
// 修改其父控件的 Render 方法
this.Parent.SetRenderMethodDelegate(new System.Web.UI.RenderMethod(SnippetControl.RenderMethod));
}
internal static void RenderMethod(HtmlTextWriter writer, Control container){
// ....
}
}
protected override void OnInit(EventArgs e) {
base.OnInit(e);
// 修改其父控件的 Render 方法
this.Parent.SetRenderMethodDelegate(new System.Web.UI.RenderMethod(SnippetControl.RenderMethod));
}
internal static void RenderMethod(HtmlTextWriter writer, Control container){
// ....
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步