【问题标题】:Repeater Control asp.net中继器控制 asp.net
【发布时间】:2010-12-01 11:33:38
【问题描述】:

我有一个中继器控件,它为我的用户显示一个播放列表,这个控件有时可以容纳 1000 首或更多的歌曲。这是一个很棒的功能,我之前使用 jQuery 进行客户端排序,但是有局限性。所以我实现了服务器端排序,效果很好,我看到的唯一问题是,当播放列表这么长时,回发和排序实际开始之前需要一两秒。

我已经观察了 firebug 中的操作并进行了一些研究,并了解到数据绑定的值没有被保留,这是有道理的。我的问题是,在 Firebug 中观看时,看起来中继器控件在开始回发之前删除了集合中的所有项目?这是真的吗?其他人有过这种经历吗?

【问题讨论】:

  • 你最好有分页..

标签: asp.net repeater


【解决方案1】:

转发器控件不再完全存在于回发之间。当您发出页面请求时,转发器控件将被调用。它被填充等,然后呈现给浏览器。完成后,ASP.NET 将删除页面上的所有对象(或者垃圾收集器会在需要时获取它们。无论哪种方式,您都无法再获取它们)。

当回发发生时,它必须重新创建整个转发器。有一些机制,例如视图状态,试图使这尽可能无缝(即重新创建控件,就像您在上一个请求中留下它们一样),但它们有时不会按您预期的方式工作。

【讨论】:

  • 这就是我看到 GC 删除项目的情况,我只是对延迟感到惊讶,但只有当有 1000 或更多行/项目时才会出现。谢谢
  • 延迟很可能是由于每次都必须重建中继器的内容造成的。您可能想查看各种缓存方法,看看是否有适合您情况的方法,如果您每次都从外部源获取数据,这可能有助于更快地重建控件。
猜你喜欢
  • 2012-02-12
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
  • 2019-09-23
  • 1970-01-01
相关资源
最近更新 更多