0

ASP.net 2.0、Visual Studio 2005 和标准控件(例如<asp:DropDownList>等)需要我输入AutoPostBack="true"才能调用后面的代码。但为什么?这不应该发生吗?谢谢

4

3 回答 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 回答