所以我们有这个以树格式显示数据的遗留代码。他们使用间隔图像填充树的每个节点(...yup..ugh)
不幸的是,这些图像的使用是由我们被迫使用的内部 UserControl 控制的(尽管基本上只是从 Web.UI.WebControls.Image 派生)。
好吧,事实证明我们有一棵包含数千个节点的巨大树,每个节点深四层或更多。这意味着我们每次绘制页面时都会创建大约 10,000 个填充图像,这会占用相当多的时间。
我现在的解决方案是静态预分配大量这些图像并使用它们。我希望当多个用户同时访问该页面时不会出现任何令人讨厌的情况。
但是...有没有什么方法可以重用 UserControl,这样我们就可以只创建一个 Image 实例,然后以某种方式将它多次添加到 Controls 集合中?我天真地尝试了这个,但没有用。图像只绘制一次,对于第一次添加到第一次的控件(可能与 INamingConainer 东西有关...?)
最佳答案
只是一个想法,但你能不能用不同的用户控件替换 Padding Image User Control,例如:
public DivPadder : HtmlGenericControl
{
public DivPadder() : base("div")
{
this.Style.Add("padding:10px");
}
}
关于c# - 重用昂贵的用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3309905/