ASP.net 2.0、Visual Studio 2005 和标准控件(例如<asp:DropDownList>
等)需要我输入AutoPostBack="true"
才能调用后面的代码。但为什么?这不应该发生吗?谢谢
问问题
842 次
3 回答
1
后台代码在服务器上运行。HTML 代码和 Javascript 在浏览器上运行。
下拉列表是在浏览器上运行的 HTML 元素。如果不将数据发送回服务器,它就无法在服务器上执行任何操作。ASPX Web 表单向服务器发送数据的方式是通过回发。
有时您不希望下拉列表将数据发送到服务器。不得不等待某些东西穿过电线确实会减慢用户体验。为了加快速度,您可以禁用列表控件上的回发;仅当用户发布整个表单时才会联系服务器。此时,服务器可以检查列表控件以查看其值是否已更改并采取措施。
于 2013-10-08T02:46:27.897 回答
1
不,这无论如何都不应该发生。
Anasp:DropDownList
是一个生成单个下拉列表的控件。这将作为select
标签呈现给客户端。select
标签通常用于收集用户的输入,而不是提交表单。
强制AutoPostBack="true"
是必要的,因为每当所选索引更改时,您都会导致回发。虽然这可能很有用,但这不是标签的预期行为select
,并且大多数开发人员不希望此操作...出于性能原因...或者如果它是较大表单的一部分,它将中断用户流程... ETC。
于 2013-10-08T03:07:25.670 回答
0
另一种选择是他们只调用javascript(在客户端),而不是往返于服务器(回发)。
Javascript 速度更快,因为它在客户端上,不需要往返服务器,但用户可以禁用或更改它。
于 2013-10-08T02:44:29.610 回答