Как я могу заставить UpdatePanel работать для нескольких кнопок? - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть приложение, которое имеет несколько кнопок.Я пытаюсь не перезагружать страницу (что мешает другим элементам управления) каждый раз, когда нажимается кнопка, поэтому я завернул основную часть кода в <asp:UpdatePanel><ContentTemplate></ContentTemplate></asp:UpdatePanel>.Я уже рассмотрел несколько решений для отдельных кнопок, включающих использование <Triggers><asp:AsyncPostBackTrigger>... сразу после </ContentTemplate>, но это не решает мою проблему.Я использую AjaxControlToolkit (я добавил using AjaxControlToolkit; в мой файл C #), а также ModalPopExtender, который, кажется, влияет на поведение UpdatePanel, в соответствии с некоторыми решениями .Без публикации всех приложений (это очень долго), вот базовая схема текущего кода (aspx и C #) и то, что я пробовал до сих пор.Любые предложения о том, что я делаю не так?

ASPX

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
    <ContentTemplate>
        <div class="container" id="table_controls_section" style="margin-top: 20px; width: 100%;">
            <div class="row" style="width: 100%;">
                <table style="border-style:solid; border-color: darkblue; border-width:thin; border-bottom-width: 0px; width:100%;">                     
                    <tr>
                      <th style="text-align: center;">Requestor Info</th>
                    </tr>
                    <tr>
                      <td style="padding: 5px; text-align: center; width: 100%;">
                        <asp:Button ID="uxTicketHistoryButton" runat="server" Text="Show Ticket History"  style="color: blue;" OnClick="uxTicketHistoryButton_Click"/>&nbsp;
                         <asp:Button ID="uxUseContactInfoButton" runat="server" Text="Use Contact Info" style="color: blue;" OnClick="uxUseContactInfoButton_Click" />
                      </td>
                  </tr>
                </table>
            </div>
        </div>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="uxUseContactInfoButton" />
        <asp:AsyncPostBackTrigger ControlID="uxTicketHistoryButton" />
    </Triggers>
</asp:UpdatePanel> 

C #

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AjaxControlToolkit;
namespace BCA_TicketManagement
{
    public partial class Summary : Page
    {
       ....
      protected void uxTicketHistoryButton_Click(object sender, EventArgs e)
      { ....
      }
      protected void uxUseContactInfoButton_Click(object sender, EventArgs e)
      { ....
      }
    }
}

Что я пробовал до сих пор: 1) Добавление using AjaxControlToolkit; к коду C #.Это видно и в моей литературе.2) Добавление UpdateMode="Conditional" ChildrenAsTriggers="true" к моему asp:UpdatePanel.Также попытался изменить ChildrenAsTriggers="false".Нет разницы.3) Попытка заставить UpdatePanel работать на одну кнопку, добавив <Triggers><asp:AsyncPostBackTrigger...>, используя ControlID для этой кнопки.Без изменений.4) Добавление xmlns:asp="#unknown" к <asp:AsyncPostBackTrigger...>.Выдает ошибку AsyncPostBackTrigger has no property 'xmlns:asp="#unknown"' Примечание Эта страница загружается внутри тега <form> в Master.site с использованием <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">.

1 Ответ

0 голосов
/ 26 февраля 2019

Вы должны предоставить свой EventName своему триггеру, как показано в следующем примере:

<Triggers>
     <asp:AsyncPostBackTrigger ControlID="uxUseContactInfoButton" EventName="Click" />
     <asp:AsyncPostBackTrigger ControlID="uxTicketHistoryButton" EventName="Click" />
</Triggers>

Я надеюсь, что это решит вашу проблему.

...