Triggering AJAX UpdatePanel from a Button Click or DropDownList Selection Change in Code-Behind
首先粘录一段关于UpdatePanel简单应用及其原理
实例前,先来说说UpdatePanel,常用属性如下:
属性的作用
- RendrMode:内容出现模式,inline为行模式,block为块模型
- UpdateMode:内容更新模式,always为只要有交互就刷新,conditional为指定条件交互时才更新。
- ChildrenAsTrigger:是否由子交互作为触发器,默认为true:表示由子交互作为触发器。
- Trrigers:触发器,ContorlID表示由哪个触发刷新,EventName表示由控件的哪个事件触发;AsyncPostBackTrigger表示异步刷新,只刷新UpdatePanel内容,如果为PostBackTrigger,则为同步刷新,页面刷新:变为普通的刷新,即重新加载整个页面。
- ContentTemplate:需要刷新的区域内容。
注意事项
- UpdatePanel可以嵌套使用,但是ChildrenTrigger指的是直接下的子交互,嵌套的不可以。
- UpdateMode为Always时与ChildrenasTrigger为false的冲突。
具体实例部分如下:
<asp:ScriptManager ID="ScriptManager1" runat="server" ></asp:ScriptManager> <asp:DropDownList ID="TestNames" runat="server" Width="500px" CssClass=box4 onselectedindexchanged="TestNames_SelectedIndexChanged" AutoPostBack="True"> </asp:DropDownList> <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional"> <ContentTemplate> <asp:GridView ID="GridViewTest" runat="server" AutoGenerateColumns="False" BackColor="White" CellPadding="2" CssClass="letter2" DataKeyNames="TestID" Width="100%" OnRowDataBound="GridViewTest_RowDataBound"> <Columns> <asp:BoundField DataField="TestID" HeaderText="ID"> </Columns> </asp:GridView> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="TestNames" EventName="SelectedIndexChanged" /> </Triggers> </asp:UpdatePanel>
//this.TestNames.Load += new System.EventHandler(this.TestNames_SelectedIndexChanged); //调用下拉选择事件