我在一个页面上有一个控件,它可以完成它需要做的事情来确定它将呈现什么 html。
我想在它呈现在页面上之前操作这个字符串。
我试过的
我假设这需要在页面的 Render 事件上完成。所以我已经覆盖了它,我正在尝试使用 RenderControl。但我真的不知道从这里去哪里。
我还尝试在这个服务器端控件(它显然不允许)周围包装文字标签,以便访问文字的 Text 属性。
我在一个页面上有一个控件,它可以完成它需要做的事情来确定它将呈现什么 html。
我想在它呈现在页面上之前操作这个字符串。
我试过的
我假设这需要在页面的 Render 事件上完成。所以我已经覆盖了它,我正在尝试使用 RenderControl。但我真的不知道从这里去哪里。
我还尝试在这个服务器端控件(它显然不允许)周围包装文字标签,以便访问文字的 Text 属性。
如果您试图覆盖现有控件的行为,您可以使用Control 适配器。
基本上,您使用此技术覆盖任何控件的本机渲染。
在您的情况下,您可以使用控件的本机渲染方法渲染到 a StringWriter
,处理结果字符串并将字符串写回输出。
如果您对控件的来源有控制权,则可以简单地覆盖各种 RenderX 方法...
[编辑]某种示例代码(来自内存,不确定语法)
public override void Render(HtmlTextWriter writer){
var sb = new StringBuilder();
using(var sw = new StringWriter(sb)){
this.RenderControl(sw);
}
var htmlResult = sb.ToString();
var patchedHtml = DoSomething(htmlResult);
writer.Writer(patchedHtml);
}