Asp.net HTML表单上可以使用的输入控件的最大数量是多少?

Asp.net HTML表单上可以使用的输入控件的最大数量是多少?,asp.net,html,Asp.net,Html,我有一个雄心勃勃的要求,asp.net 2.0网页包含一个表格gridview,网格中的每一行包含6个用于数据输入的选择下拉控件。将显示的行数取决于用户的搜索参数,这些参数在页面的另一个区域中指定。不幸的是,如果指定了默认甚至基本的搜索参数,网格可能包含几百行。我注意到,浏览器(在本例中为IE8)在我到达大量行时开始表现得相当不稳定-没有记录在案的证据表明这开始成为问题的行数。例如,试图查看页面的源代码时,IE会显示一条消息,指出页面存在问题,迫使浏览器重新加载页面,而我从未获得源代码。显然,页

我有一个雄心勃勃的要求,asp.net 2.0网页包含一个表格gridview,网格中的每一行包含6个用于数据输入的选择下拉控件。将显示的行数取决于用户的搜索参数,这些参数在页面的另一个区域中指定。不幸的是,如果指定了默认甚至基本的搜索参数,网格可能包含几百行。我注意到,浏览器(在本例中为IE8)在我到达大量行时开始表现得相当不稳定-没有记录在案的证据表明这开始成为问题的行数。例如,试图查看页面的源代码时,IE会显示一条消息,指出页面存在问题,迫使浏览器重新加载页面,而我从未获得源代码。显然,页面的加载和呈现也相当缓慢

我知道我的解决方案可能涉及对gridview进行分页,这样它每页只显示20行左右,并且我必须编写代码来处理用户更改页面时保存下拉列表值中的更改。我可能还可以在gridview上关闭viewstate。然而,我真正想提出的问题是——有没有人见过一条记录在案的规则,指示HTML浏览器表单应该能够包含的最大输入控件数?在搜索之后,我在互联网上找不到任何东西,我怀疑答案可能是浏览器根据其运行的机器配置可以处理的任何东西。你有什么经验法则吗

谢谢你的建议


Rich

这将很大程度上取决于客户机的内存。据我所知,对控件的数量没有实际限制。在一天结束时,浏览器引擎会呈现代码指示的任何内容。那里没有if声明说:

if (this.InputControls.Count > N) then GoBang();
在使用大量控件时,您可能会遇到不稳定的行为,这可能是由于计算机的CPU和内存受到影响而导致的控件渲染本身。如果部署项目并在几个不同规格的机器上运行站点,您可能会看到不同


但是,你真的需要如此大量的控制吗?您认为应该使用分页的事实表明您知道自己做错了。正确地执行它并实现分页,否则您将有问题需要稍后解决,并且会影响客户端

有更好的设计吗?使用场景是什么

例如,如果有一个需求,比如我不太喜欢在web上称之为Excel的需求,那么提供一个基本上是只读的数据集,然后在单击时使用jQuery将单行更改为编辑控件是否可行?甚至可能,使用一些服务器端分页,模拟无限滚动,同时仍然一次只加载20行?通过这种方式,您可以使显示的数据和存储的DOM数据更小,还可以减少浏览器中编辑控件的数量,最重要的是,这些控件即使不是全部,也可以提供大部分所需的功能


一般来说,一次看到大量的输入控件是一场可用性噩梦,视觉上非常分散注意力,很难排列/处理。毫无疑问,有了我上面描述的解决方案,你的境况会更好。是的,这将是一个大量的客户端脚本,但对浏览器、用户,甚至最终对你来说,都会容易得多。

唯一记录在案的规则是常识——不要在页面上放置更多控件,而要在桌面应用程序的窗体上放置控件。