asp.net updatePanel PostBackTrigger вызывает полную обратную передачу

1

Ниже представлена страница разметки

  <asp:UpdatePanel runat="server" UpdateMode="Conditional">
        <ContentTemplate>
                    <table>
                        <tr>
                            <td>
                                <label>File name<label>
                            </td>
                        </tr>
                       <tr>
                            <td>
  <asp:TextBox runat="server" ID="txtName" Width="150%"></asp:TextBox>
                            </td>
                        </tr>
                      <tr>
                            <td>
                                <label>File</label>
                            </td>
                            <td>
                                <asp:FileUpload runat="server" ID="fileUpload" />
                            </td>
                        </tr>
                    </table>
                    <asp:Button runat="server" ID="btnUpload" Text="Upload file"  OnClick="btnUpload_Click" />
                </div>

                <div class="panel-heading">File display</div>
                <div class="panel-body">
     <asp:GridView runat="server">
       </asp:GridView>
                    <asp:Button runat="server" ID="btnRefresh" Text="Refresh" OnClick="btnRefresh_Click" />
                </div>
            </div>
        </ContentTemplate>
        <Triggers>
            <asp:PostBackTrigger ControlID="btnUpload" />
        </Triggers>
    </asp:UpdatePanel>

С приведенным выше кодом, всякий раз, когда пользователь нажимает "btnUpload", будет сообщение назад, но есть панель обновления, чтобы предотвратить отправку сообщения, когда я меняю PostBackTrigger на AsyncPostBackTrigger, страница не была отправлена обратно, но fileUpload.HasFile будет ложным и не сможет получить файл.

Что случилось с вышеуказанным кодом? Почему postBackTrigger запускает сообщение назад?

Теги:
file-upload

2 ответа

5
Лучший ответ

Загрузка файла не будет работать с AsyncPostBackTrigger. Он будет работать только с PostBackTrigger.
РЕШЕНИЕ: Если вы хотите загрузить файл с помощью AsyncPostBackTrigger, вы должны использовать ajaxtoolkit. А в AjaxToolkit это имя управления с именем "AsyncFileUpload".
Надеюсь, вы знаете, как добавить AjaxToolkit в свой Toolbox. Если вы не знаете, чем скажите, я буду вести вас.

2

Вы не определили событие контроля, вы должны сказать, что триггер, на котором происходит событие контроля:

<asp:AsyncPostBackTrigger ControlID="btnUpload" EventName="Click" />

ОБНОВИТЬ:

вы должны использовать асинхронный триггер обратной передачи:

AsyncPostBackTrigger - используйте эти триггеры, чтобы указать элемент управления внутри или вне UpdatePanel, который при щелчке должен вызвать частичную обратную передачу страницы.

PostBackTrigger - использовать эти триггеры, чтобы иметь контроль над UpdatePanel, вызывая полную обратную передачу страницы, а не частичную обратную передачу страницы.

  • 0
    При попытке добавить EventName к PostBackTrigger возникает ошибка: тип System.Web.UI.PostBackTrigger не имеет открытого свойства с именем «EventName». Кроме того, если я не помню неправильно, только AsyncPostBack имеет атрибут EventName ...
  • 0
    да, вам нужно использовать AsyncPostBackTrigger, если вы не хотите полную обратную передачу
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню