ASP.NET GridView 回发时“找不到页面”

问题描述 投票:0回答:3

我有一个 GridView(在一个特定实例中)将包含大约 5000 行,每行包含一个包含大约 5000 个项目的 DropDownList。当然,这需要永远加载并在我的盒子上抛出 OutOfMemory 异常。

没什么大不了的,我想。我将启用分页。

嗯,当它绑定到其他数据时,效果很好(对于同一个 gridview),但是当我将它绑定到这个特定的数据源(具有 5000 行的数据源)时,就会出现问题。

当我第一次使用有问题的数据集加载 GridView 时,第一页显示得很好。但是,当我单击查看第二页时,出现错误:

错误 101(net::ERR_CONNECTION_RESET): 未知错误。

在谷歌浏览器中。

错误:

Internet Explorer cannot display the webpage

在 IE 中。

任何关于为什么会发生这种情况的想法将不胜感激。

c# asp.net gridview pagination
3个回答
4
投票

这可能只是一个超时问题。 回发需要更长的时间,因为它必须处理 ViewState...这绝对是巨大的。

就像其他人所说,您的实施需要重新思考。

这些选项是按字母顺序排列的吗? 如果是这样,那么一个相当简单的自动完成怎么样? 输入两个字母,然后弹出以这两个字母开头的可用选项。 雅虎库对此有一个不错的实现。

如果您绝对必须在下拉列表中包含 5000 个选项...请将此下拉列表移到 GridView 之外,以便它不会出现在每一行上。 基本上,用户将选择一行,然后使用这个单一的“主”下拉列表来选择数据。 您甚至可以添加一个 javascript hack,将下拉列表移动到选择的行中,以便它出现下拉列表位于每一行中,但实际上只有一个。


2
投票

查看运行 IIS 的事件查看器,您将看到任何未处理的 ASP.NET 错误。

此外,包含 5000 多个条目的下拉列表似乎不是控件的最佳选择......


0
投票

无需检索 5000 行,只需检索将在页面上显示的行。

此外,包含 5000 多个条目的下拉列表似乎不是控件的最佳选择......

+1

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.