Кнопка обновляет вложенную панель обновления (но не должна), кнопка не соответствует определенному триггеру - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть страница с вложенной панелью обновлений. Внутренний UP имеет выбор дерева. На внешнем ВВЕРХ имеется кнопка (триггер обратной передачи).

AsyncPostBackTrigger для внутреннего UP работает нормально. Но после того, как я изменил некоторые настройки, кнопка во внешнем UP не работает.

На самом деле он что-то делает: обновляет внутренний UP.

Когда я щелкаю где-то вне внешнего UP, а затем нажимаю кнопку, она работает - она ​​обновляет всю страницу.

При удалении внутреннего UP поведение исчезает.

Я искал такие темы, как __EVENTTARGET и WebForm_DoPostBackWithOptions (options.clientSubmit). Это не помогает полностью: при изменении clientSubmit на TRUE он выполняет свою работу, но не устраняет основную проблему. Так что это было бы НЕ просто обходной путь, потому что после нажатия где-нибудь за пределами внешнего UP он работает нормально.

<asp:UpdatePanel id="outerUP" runat="server" updatemode="Conditional" childrenastriggers="false">
    <Triggers> 
        <asp:PostBackTrigger controlid="Expander" />
    <Triggers>
    <ContentTemplate>
        [...]
        <xxx:ExpandingPanel ID="Expander" runat="server">
            <Content>
                [...]
                <xxx:FilterSelector id="FilterSelector1" runat="server" />
                [...]
            </Content>
        </xxx:ExpandingPanel>
        [...]
    </Content>
</asp:UpdatePanel>

Панель расширения имеет кнопку

<asp:Button id="additionalButton" runat="server" visible="true"></asp:Button>

Вид дерева выглядит так

<asp:UpdatePanel id="innerUP" runat="server" updatemode="Conditional" childrenastriggers="true">
    <Triggers>
        <asp:AsyncPostBackTrigger controlid="TreeView" eventname="SelectedNodeChanged" />
        <asp:AsyncPostBackTrigger controlid="TreeView" eventname="SelectedNodeExpanded" />
        <asp:AsyncPostBackTrigger controlid="TreeView" eventname="TreeNodeChecked" />
    </Triggers>
    <ContentTemplate>
        [...]
        <xxx:TreeView id="TreeView" runat="server" />
        [...]
    </ContentTemplate>
</asp:UpdatePanel>

Я хочу, чтобы внешняя кнопка запускала свой собственный PostbackTrigger, чтобы не обновлялась внутренняя UP.

...