我是ajax的新手并使用visual studio 2005和framework 2.0。一个简单的Ajax示例总是占用页面加载事件以进行按钮单击。没有部署,所有只是在调试模式下运行都会带我进入Page_Load
事件。不知道是什么问题?我检查了UpdatePanel1.IsInPartialRendering and ScriptManager1.IsInAsyncPostBack
的值 false 。
这是我的代码,
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" >
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
<asp:Button ID="Button1" runat="server" Text="PostBack" OnClick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToLongTimeString()+UpdatePanel1.IsInPartialRendering+ScriptManager1.IsInAsyncPostBack;
}
到目前为止,Google和stackoverflow对我没有帮助。所以善良的心帮助我......
答案 0 :(得分:7)
控制内部更新面板导致asynchronous postback
。
什么是异步回发?
从Refrence到MSDN
An asynchronous postback behaves much like a synchronous postback. All the server page life-cycle events occur, and view state and form data are preserved. However, in the rendering phase, only the contents of the UpdatePanel control are sent to the browser. The rest of the page remains unchanged
。
现在,如果它导致服务器上的所有事件而不是使用部分渲染...
部分页面呈现消除了整个页面的需要 由于回发而刷新。相反,只有个人 已更改的页面区域已更新。结果,用户 没有看到整个页面重新加载每个回发,这使得用户 与网页的互动更加无缝
答案 1 :(得分:0)
我的Web.forms上有点生疏,但我记得,这是设计的。当AJAX更新面板向服务器发送请求时,Page_Load会触发。