Asp.net 自带的Ajax Extensions中得ScriptManage和 UpdatePanel可以一起实现局部刷新,提高速度和节省网络流量
注意的是:
1 页面只可以有一个ScriptManage控件,最好放在头部,放在UpdatePanel之前
HTML上代码
View Code
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<br />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="局部刷新" Width="95px" />
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="false">
<asp:ListItem Selected="True" Value="1">a</asp:ListItem>
<asp:ListItem Value="2">b</asp:ListItem>
<asp:ListItem Value="3">c</asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="正常" Width="96px" />
</div>
注意ID="Button2" 在UpdatePanel外面,正常刷新
后台逻辑代码比较简单,就是现实选择的值和时间 ID="Button1" 和 ID="Button2"逻辑代码一样
View Code
string str = string.Format("当前选择的值是:{0},时间是:{1}", this.DropDownList1.SelectedItem.Text, DateTime.Now.ToString());
this.Label1.Text = str;
测试一下效果,可以发现,Button1可以实现局部刷新,不用回传页面。Button2还是正常的重新回传刷新