是否可以在页面上操作控件的 html 输出
本文关键字:控件 操作 html 输出 是否 | 更新日期: 2023-09-27 18:32:11
我在页面上有一个控件,它可以执行它需要执行的操作来计算它将呈现的html。
我想在页面上呈现之前操作此字符串。
我尝试过什么
我假设这需要在页面的 Render 事件上完成。所以我已经覆盖了它,我正在尝试使用 RenderControl。但我真的不知道该何去何从。
我还尝试将文本标记包装在这个服务器端控件周围(它显然不允许),以便访问文本的 Text 属性。
-
如果尝试重写现有控件的行为,则可以使用控件适配器。
基本上,您可以使用此技术覆盖任何控件的本机呈现。
在这种情况下,您可以使用控件的本机 render 方法呈现到
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);
}