ASP.NET обновление панели обновление автоматически, даже при условном

#asp.net #ajax #updatepanel #conditional

#asp.net #ajax #updatepanel #условные операторы

Вопрос:

Я впервые работаю над панелями обновления AJAX с некоторым успехом. У меня есть <div> то, что я хочу обновить при нажатии кнопки (для которой отключена обратная передача).

 <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"></asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server" ChildrenAsTriggers="False">
            <ContentTemplate>
                <div style="float: left; height: auto; width: 23%;">
                    <div style="font-size: 20px; padding-top: 11px; border-bottom: solid 1px #dddddd;">
                        Your Logo
                    </div>
                    <br />
                    <div class="resultsinnerbox" style="padding-top: 15px; width: 85%; font-size: 12px;">
                        <asp:Literal ID="litLogo" runat="server"></asp:Literal>
                        <div style="margin-left: 4.5%; margin-right: 4.5%;">
                            <asp:Literal ID="litLogoDetails" runat="server"></asp:Literal>
                            <span class="fileupload">Upload</span>
                        </div>
                    </div>
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
  

При нажатии кнопки будет выполнено следующее

 litLogoDetails.Text = "Hello"
'UpdatePanel1.Update()
  

Однако, даже если UpdatePanel закомментирован или нет, кнопка всегда обновляет панель.

Как это так? когда UpdatePanel1 является условным. Кроме того, как он узнает, что нужно обновить ‘UpdatePanel1’ при нажатии кнопки и UpdatePanel1.Update() закомментировании.

Мне нужно понять, как это работает, прежде чем я смогу продолжить.

Спасибо за помощь.

Комментарии:

1. Похоже, что кнопка находится за пределами панели обновления. Если это так, то событие нажатия кнопки запускает полную обратную передачу, что делает обновление всегда. Таким образом, UpdatePanel здесь не действует. Чтобы это сработало, вам нужно переместить кнопку внутри панели обновления.

2. Я обнаружил, что вы можете использовать <Trigger>, но это нарушает работу, поскольку кнопка находится в поле модели. 🙁