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);  //调用下拉选择事件

posted @ 2012-09-17 17:06  f_zp  阅读(405)  评论(0编辑  收藏  举报