【发布时间】:2008-12-16 07:34:52
【问题描述】:
我试图确定为什么 asp.net 网格视图如此缓慢。网格视图包含在一个自定义子类中,该子类添加了一个自定义寻呼机并进行了一些特殊的格式化。此外,自定义网格视图包含在用户控件中,该控件将网格视图放在更新面板中,并将其与对象数据源相结合,使控件易于使用。
我已经将减速追踪到两个问题领域:
- 首先是渲染的 html 和 viewstate 的大小。我设法通过将视图状态呈现给会话变量而不是隐藏字段来改进这一点,但我可能会重写控件以根本不使用视图状态。
- 但是,我的主要问题是控件的呈现。在一个简单的页面上,唯一的控件是我的用户控件,即使禁用了视图状态,渲染一个 40 列 x 20 行的网格也需要几秒钟!查看跟踪我发现 PreRender 阶段需要 95% 的时间,所以我认为问题就在那里。
那么,我的问题是我应该如何解决这个问题?我在跟踪 asp.net 在 PreRender 阶段中所做的事情时遇到问题。我在调用的用户控件中有一些代码,但大部分时间都花在了我的代码之外。
我尝试下载 asp.net 的调试符号,但 Visual Studio 仍然不允许我进入代码,并且跟踪在这里没有提供太多信息。
有没有其他人遇到过这种情况?我首先怀疑我的数据源,但是数据库调用很快,所以问题不存在。
【问题讨论】: