2010-03-09 79 views
3

我正在学习ASP.NET,主要是通过阅读一本书,但也努力实际上做了一些事情。但是,我遇到了一个我不明白的关于列表控件的解释。这就是它说:请帮我理解一个ASP.NET控件的AutoPostBack属性

“[在智能任务面板的情况下] ... 最后一个选项设置控件的AutoPostBack属性选中该选项时,控制系统将提交它包含在页面只要用户从列表中选择一个新项目就立即回到服务器

您能为我解释这个声明吗?在此先感谢您的帮助。

回答

5

对于正常的客户端控件(如与AutoPostBack列表控制设置为false),当用户在列表中选择一个项目时,浏览器不与服务器进行通信。在用户看到选择结果之前,没有网络流量和延迟,但也没有机会在服务器代码中执行任何操作,例如计算相关值。如果您想根据选择对屏幕执行任何操作,则必须使用客户端脚本。

AutoPostBack设置为true时,选择列表中的项目向服务器发送消息(通过HTTP POST)。然后,ASP.NET执行你附加到列表的已更改事件的任何代码,重新构建页面,并将修改后的页面发送给客户端。

1

当用户选择ListItem(或任何集合项目)时,页面应该自动使用POST事件将Web窗体提交给服务器。

这里的一对HTTP POST事件的维基百科页面 http://en.wikipedia.org/wiki/HTTP_POST

3

如果您在与对照组中AutoPostBack="true",当它的价值的变化,它会自动回发到服务器。

例如,如果您想要一个下拉列表,当更改在下面的表格中显示不同的数据时,您可能想要回发获取新值,以便您的页面可以刷新数据。

这与下拉式样相反,点击旁边的按钮可以回发,所以不要更改值,点击按钮,您可以用AutoPostBack="true"更改值。

1

Page中包含的asp.net控件的责任是渲染用户最终会在浏览器中看到的html的一部分。某些控件支持AutoPostBack属性。它所做的是让控件发出一些额外的javascript,只要该控件的值发生更改就会提交表单,以便您可以在服务器端对此进行响应。

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

0
  • 基本上使用的AutoPostBack,这样每当有对照文字或者一些变化的控件属性任何其它变化,页面被提交到服务器。
  • 发布页面意味着页面被提交给服务器。假设我使用一个文本框,并且使其AutoPostBack =“true”,现在我向其中写入一些文本并在文本框外单击,然后该页面将刷新。
  • 此刷新表示您输入到文本框中的值已提交给服务器。
  • 回发由ASP.NET服务器处理。 AutoPostBack会自动将您的页面回发给服务器。
  • 添加事件处理程序。这会给你一个更好的图片。 在你的DropDownList的情况下:添加一个事件处理程序:双击DropDownList,它会将你路由到一个事件处理程序:
  • 在那个事件处理程序中写一些东西让我们说:Response.Write(“message”);
  • 页面将刷新,您将看到您的消息,这意味着该页面已发布到服务器,服务器已执行您的事件处理程序并向您显示消息。

我希望这是有用的