c# - 重用昂贵的用户控件

标签 c# asp.net user-controls reusability

所以我们有这个以树格式显示数据的遗留代码。他们使用间隔图像填充树的每个节点(...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/

相关文章:

c# - 使用属性变量对列表进行排序

c# - 如何在 C# 中读取 Http 响应流两次?

asp.net - 有没有针对Visual Studio 2013的解决方案,不能为ASPX页面正确生成.designer文件?

c# - 未见 Javascript 更新的 ASP.NET TextBox

c# - 递归 ASP 用户控件

c# - 如何在对话框打开时禁用拖放

c# - 如何实现只运行一次的.net core IHostedService

asp.net - 隐藏 asp.net WebMethod 返回的异常的堆栈跟踪?

.net - 多行文本框中的当前行

java - 在 JavaFX 中切换组件的颜色