5

UpdatePanel別の中にありUpdatePanel、内側の UpdatePanel にボタンがある場合、このボタンをクリックすると、内側ののみが更新されますUpdatePanel。どうやって ?

4

4 に答える 4

6

innerupdate パネルで updatemode を conditional に設定し、outerupdatepanel の childrenastriggers プロパティを false に設定します。内側の更新パネルで、ポストバック トリガーを追加し、ポストバックを引き起こすボタンに設定します。このようなもの

  <asp:UpdatePanel ID="parentup" runat="server" ChildrenAsTriggers="false">
    <ContentTemplate>
        <asp:UpdatePanel ID="chidlup" UpdateMode="Conditional" runat="server">
            <ContentTemplate>
                <asp:Button ID="btn" runat="server" />
            </ContentTemplate>
            <Triggers>
                <asp:PostBackTrigger ControlID="btn" />
            </Triggers>
        </asp:UpdatePanel>
    </ContentTemplate>
</asp:UpdatePanel>
于 2012-08-07T10:27:59.523 に答える
5

@Waqar Janjuaは正しいです。

ただし、ChildrenAsTriggers を false に設定する必要はありません。true のままにしておく方が便利な場合もあります。

両方の updatepanels で属性UpdateMode="Conditional"を設定します (ChildrenAsTriggers はデフォルトの true のままにします)。Janjuaが言ったように、トリガーをボタンに追加します:

<Triggers>
    <asp:AsyncPostBackTrigger ControlID="btn" />
</Triggers>

UpdateMode が条件付きでない場合、各 updatepanel がそれを更新します。

于 2012-08-13T20:57:07.577 に答える
0

このコードはあなたを助けます:ここにありますSource

 <asp:ScriptManager ID="script1" runat="server"></asp:ScriptManager>
        <asp:UpdatePanel ID="up1" runat="server">
            <ContentTemplate>
                <asp:Label ID="lblTime" runat="server" ForeColor="Red"></asp:Label>
                <asp:Button ID="buttonOuter" runat="server" OnClick="buttonOuter_Click" Text="What is the time?" />
                <asp:UpdatePanel ID="up2" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:Label ID="lblTime2" runat="server" ForeColor="Blue"></asp:Label>
                        <asp:Button ID="buttonInner" runat="server" OnClick="buttonInner_Click" Text="What is the time?" />
                    </ContentTemplate>
                </asp:UpdatePanel>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger  ControlID="buttonOuter" EventName="Click"/>
            </Triggers>
        </asp:UpdatePanel>

そしてここにあるcode behinde

 protected void Page_Load(object sender, EventArgs e)
{

}
protected void buttonInner_Click(object sender, EventArgs e)
{
    up2.Update();
    lblTime2.Text = DateTime.Now.Second.ToString();
}
protected void buttonOuter_Click(object sender, EventArgs e)
{
    lblTime.Text = DateTime.Now.Second.ToString();
}
于 2015-05-23T06:53:08.547 に答える