我正在学习ASP.NET,主要是通过阅读一本书,但也在努力实际做事。但是,我遇到了关于列表控件的解释,我不明白。这就是它所说的:
“[在Smart Tasks面板的上下文中] ... 最后一个选项设置控件的AutoPostBack属性。选中此选项后,控件将其包含的页面提交回服务器用户从列表中选择一个新项目“
你能为我解释这个陈述吗?在此先感谢您的帮助。
答案 0 :(得分:6)
对于普通客户端控件(例如AutoPostBack
设置为false
的列表控件),当用户选择列表中的项目时,浏览器会不进行通信与服务器。您的用户在看到所选内容之前没有网络流量且没有延迟,但也没有机会在您的服务器代码中执行任何操作,例如计算相关值。如果您想对屏幕做任何事情以响应选择,您必须使用客户端脚本。
当AutoPostBack
设置为true
时,选择列表中的项目会向服务器发送消息(通过HTTP POST)。然后ASP.NET执行您附加到列表更改事件的任何代码,重建页面,并将修改后的页面发送到客户端。
答案 1 :(得分:3)
如果在控件上设置AutoPostBack="true"
,当它的值发生变化时,它将自动回发到服务器。
例如,如果您想要一个下拉列表,当更改后显示下表或其他内容中的不同数据时,您可能希望回发获取新值,以便您的页面可以刷新数据。
这与下拉列表的样式以及您单击以回复的旁边的按钮相反,因此,不要更改值,而是单击按钮,您只需使用AutoPostBack="true"
更改值。
答案 2 :(得分:3)
ListBox有一个SelectedIndexChanged事件,您可以处理该事件以检测ListBox中所选项的更改时间。你可以这样配置:
<asp:ListBox ID="ListBox1" runat="server" OnSelectedIndexChanged="ListBox1_SelectedIndexChanged"/>
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
// Do something
}
使用AutoPostBack="false"
(默认值),该事件处理程序实际上并未在“实时”中发生在服务器上。用户必须执行不相关的操作才能提交(POST)表单,例如单击按钮,以便在服务器上触发该事件。
如果您想对该活动采取“实时”操作,请设置AutoPostBack="true"
,以便每次更改所选项目时自动提交表单。
好处 - 您可以获得事件的“实时”通知。缺点 - 页面与服务器的关系更多,因此每次点击都会花费带宽并导致客户端“滞后”。
进一步阅读:http://www.dotnetspider.com/resources/189-AutoPostBack-What-How-works.aspx
答案 3 :(得分:1)
当用户选择ListItem(或任何集合项)时,页面应自动使用POST事件将Web表单提交给服务器。
这是关于HTTP POST事件的维基百科页面 http://en.wikipedia.org/wiki/HTTP_POST
答案 4 :(得分:1)
Page
中包含的asp.net控件的职责是呈现用户最终会在浏览器中看到的html的一部分。某些控件支持AutoPostBack
属性。它的作用是它使控件发出一些额外的javascript,只要该控件的值发生变化就会提交表单,以便你可以在服务器端对此作出反应。
答案 5 :(得分:0)
我希望这很有用