【发布时间】:2012-09-12 14:59:32
【问题描述】:
我有两组asp:TextBox 和asp:Button 控件,一组在更新面板内,另一组在更新面板外..
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button Text="text" runat="server" ID="btn1"/>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button Text="text" runat="server" ID="btn2"/>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
代码隐藏
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = TextBox2.Text;
}
现在我的问题是,Updatepanel 究竟是如何工作的?
其实我以为,在 btn1 点击时,只有 UpdatePanel 的内容作为请求发送到服务器,而服务器的响应只发送到该更新面板。
所以,我在 TextBox2 中输入了一些文本并单击了 btn1.. 但令人惊讶的是,TextBox1 文本更改为 TextBox2..
然后我想,整个页面作为请求发送到服务器,响应只发送到该 updatePanel 并相应更新..
现在我在 Google Chrome 开发者工具中检查了两个请求(即来自btn1 和btn2 的请求).. 再次令我惊讶的是,请求的Content-Length 存在差异..
如果更新面板之外有更多控件,那么Content-Length 将更多来自btn2 的请求
有人能解释一下吗..
【问题讨论】:
标签: asp.net asp.net-ajax updatepanel