我有一个雄心勃勃的需求,需要一个包含表格(网格视图)的asp.net 2.0网页,并且网格中的每一行都包含6个用于数据输入的选择(下拉)控件。将显示的行数取决于用户的搜索参数,这些参数在页面的另一个区域中指定。不幸的是,使用指定的默认(甚至是基本)搜索参数,网格可能包含数百行。我注意到,浏览器,在本例中为IE8,在我达到大量行数时就开始表现得相当不稳定--没有记录的证据表明这开始成为问题的行数。例如,尝试查看页面的源代码时,IE会显示一条消息,指出页面有问题,迫使浏览器重新加载它,而我从未获得过源代码。显然,页面的加载和渲染速度也相当慢。
我知道我的解决方案可能涉及对网格视图进行分页,这样它每页只显示20行左右,而且当用户更改页面时,我必须编写代码来处理下拉值更改的保存。我可能也可以在网格视图上关闭视图状态。但是,我真正想提出的问题是--有没有人见过一条文档化的规则,指出HTML浏览器表单应该能够包含的输入控件的最大数量?搜索后,我在Internet上找不到任何东西,我怀疑答案可能是基于运行它的机器配置,浏览器可以处理的任何东西。你有什么经验法则吗?
谢谢你的建议。
富足
发布于 2010-06-03 20:39:58
有没有更好的设计?使用场景是什么?
例如,面对这样的需求(我不是很亲切地称其为“网上的Excel”),是否可以呈现一个只读的数据集,然后在单击时使用jQuery更改单行以编辑控件?甚至,使用一些服务器端分页,模拟“无限滚动”,同时仍然一次只加载20行?通过这种方式,您可以使显示的(和DOM存储的)数据更小,并减少浏览器中编辑控件的数量,最重要的是,这些控件仍然提供大多数(如果不是全部)所需的功能。
一般来说,大量的输入控件一次可见是可用性的噩梦,而且在视觉上非常分散注意力,很难排列/处理。毫无疑问,使用我上面描述的解决方案会更好。是的,这将是一大堆客户端脚本,但在浏览器上、用户上,甚至在你身上,它都会变得更容易。
发布于 2010-06-03 20:37:37
这在很大程度上取决于客户端机器的内存。据我所知,控件的数量没有实际限制。归根结底,是浏览器引擎呈现代码所指示的任何内容。其中没有if语句:
if (this.InputControls.Count > N) then GoBang();
你在处理大量控件时可能遇到的不稳定行为可能是控件渲染本身对计算机的CPU和内存造成的。如果您部署项目并在几台不同规格的机器上运行站点,您可能会看到不同之处。
但是,你真的需要这么大量的控件吗?您认为应该使用分页这一事实表明您知道这样做是错误的。正确地执行并实现分页,否则您将在以后修复和抱怨客户端的问题;)。
https://stackoverflow.com/questions/2969526
复制相似问题