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
轉載于:https://www.cnblogs.com/freeliver54/archive/2007/01/23/628279.html