3

2つの更新パネルを備えたWebフォームがあります。

<asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release">
    </asp:ScriptManager>

<p>
    <asp:UpdatePanel ID="upl1" runat="server">
        <ContentTemplate>
            <asp:Button runat="server" ID="btn1" Text="Button1" />
        </ContentTemplate>
    </asp:UpdatePanel>

    <asp:UpdatePanel ID="upl2" runat="server">
        <ContentTemplate>
            <asp:Button runat="server" id="btn2" Text="Button2" />
        </ContentTemplate>
    </asp:UpdatePanel>
</p>

をクリックbtn1すると、のロードイベントupl2がトリガーされupl1ます。

upl1これはボタンを含む更新パネルであるため、ロードされることだけを期待します。

Why isn't this happening, and how can I make it happen?

4

2 に答える 2

1

更新パネルを操作するときに常に使用する 1 つの方法は、プロパティを設定することです。

ChildrenAsTriggers="false" UpdateMode="Conditional"

そして、必要な場合にのみ更新パネルを更新します。

protected void btn1_Click(object sender, EventArgs e)
{
    // some logic
    // ....
    upl1.Update();
}

これらのプロパティを適用して、問題が解決するかどうかを確認してください。

于 2013-02-22T14:04:21.903 に答える
0

をトリガーするボタンで同様の問題がありUpdatePanel、使用ChildrenAsTriggers="false" UpdateMode="Conditional"しても役に立ちませんでした。

私は最終的に以下を使用して、ボタンに通常のポストバックを強制的に実行させました。

 ScriptManager1.RegisterPostBackControl(btn1);
于 2014-05-19T06:41:12.190 に答える