我有一系列复合用户控件,它们从基类继承,它覆盖控件的Render方法。我在其中一个复合控件上放置了Substitution控件;但是替换内容被写入输出流的顶部而不是定义替换控制的位置。下面是我的渲染方法。
从本质上讲,我的目标是在覆盖用户控件上的Render方法时进行圆环缓存。
关于为什么会发生这种情况的任何想法,尽管正在调用基础渲染方法?
protected override void Render(System.Web.UI.HtmlTextWriter writer) {
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
base.Render(htw);
string output = sw.ToString();
try {
MyPage objPage = (MyPage)this.Page;
CustDictionary d = new CustDictionary(objPage);
output = d.Replace(output);
}
catch {
// do nothing
}
writer.Write(output);
}
答案 0 :(得分:0)
通过回顾Google以及我所做的一些测试,似乎在asp.net 3.5中无法做到这一点。目标是使用替换控件或从类似控件继承来获得未缓存的控件。有一些方法可以使用继承和其他自定义控件,但是需要在控件中对页面进行实例化以手动呈现控件,这会给应用程序带来不必要的压力。最终解决方案是使用jQuery打印出已经存在于cookie中的数据。