有没有人知道如何选择所有plain-html< p> ASP.net页面中的元素,服务器端?在我的情况下,我想在他们进入浏览器之前对所有这些操作应用一些文本操作。
我意识到我可以为每个添加runat = server然后再添加FindControl。但那是很多代码。
这相当于javascript的getElementsByTagName,但是服务器端。
谢谢!
答案 0 :(得分:1)
您可以使用浏览器适配器页面: 只是一个想法:来自System.Web.UI.Page的派生类 - >我的编目
你应该创建BrowserAdapter并覆盖此页面的渲染,在输出中你会发现生成的HTML将转到客户端浏览器。在这种情况下,您可以进行一些XSLT突变或简单的XML(XPATH)替换,结果您将完成任务:)。
<browsers>
<browser refID="default">
<controlAdapters>
<adapter controlType="System.Web.UI.Page"
adapterType="yournamespace.TestAdapter" />
</controlAdapters>
</browser>
public class TestAdapter : PageAdapter
{
protected override void Render(HtmlTextWriter writer)
{
/* Get page output into string */
var sb = new StringBuilder();
TextWriter tw = new StringWriter(sb);
var htw = new HtmlTextWriter(tw);
// Render into my writer
base.Render(htw);
string page = sb.ToString();
// Here you can change output of render
writer.Write(page);
}
}
答案 1 :(得分:0)
通过过滤处理程序的输出来考虑Http过滤器模块。
服务器上没有document.getElementsByTagName的等价物,除非每个p标签都是runat = server。