Ajax:如何运用updatepanle进行局部刷新
1.设定ScriptManager的EnablePartialRendering="true"(一般默认为true)
2.设定要进行局部刷新panel的UpdateMode="Conditional"(本panel 的id为zz)
这样就可以保在本panle内的控件操作refresh页面时,
不会将整个page刷新,而刷新本panle中的
如果还想作其它操作时refresh这个panel中的控件可以如下操作
3.加入<Triggers><asp:AsyncPostBackTrigger ControlID="xx" EventName="yy" /></Triggers>
其中ControlID写相关的控件id,EventName写该控件的事件
这样就会,如果这个近件(xx)做yy动作时,将会refresh zz这个panel
eg:
<%--第一个panel--%>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
<ContentTemplate>
<asp:TreeView ID="ctlUnitTree" runat="server" EnableClientScript="False"
OnSelectedNodeChanged="ctlUnitTree_SelectedNodeChanged"
OnTreeNodeExpanded="ctlUnitTree_TreeNodeExpanded">
</asp:TreeView>
</ContentTemplate>
</asp:UpdatePanel>
<%--第二个panel--%>
<asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional" >
<ContentTemplate>
<asp:TextBox ID="txtLoginID" Enabled="false" runat="server" ></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ctlUnitTree" EventName="SelectedNodeChanged" />
</Triggers>
</asp:UpdatePanel>
作用就是:
第一个panel中的tree变更选中节点时,
将会refesh第二个panel中的值
而第二个panel中做任何作动将不会影响第一个panel
4.如果想第二个panel中的textbox改变时,要refresh第一个panel
可在第一个panel中加及同样的
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ctlUnitTree" EventName="TextChanged" />
</Triggers>
或者在OnTextChanged事件中加入UpdatePanel1.update();进行强行refresh
posted on 2007-01-23 20:11 freeliver54 阅读(2428) 评论(4) 编辑 收藏 举报