Ниже представлена страница разметки
<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 запускает сообщение назад?
Загрузка файла не будет работать с AsyncPostBackTrigger. Он будет работать только с PostBackTrigger.
РЕШЕНИЕ: Если вы хотите загрузить файл с помощью AsyncPostBackTrigger, вы должны использовать ajaxtoolkit. А в AjaxToolkit это имя управления с именем "AsyncFileUpload".
Надеюсь, вы знаете, как добавить AjaxToolkit в свой Toolbox. Если вы не знаете, чем скажите, я буду вести вас.
Вы не определили событие контроля, вы должны сказать, что триггер, на котором происходит событие контроля:
<asp:AsyncPostBackTrigger ControlID="btnUpload" EventName="Click" />
ОБНОВИТЬ:
вы должны использовать асинхронный триггер обратной передачи:
AsyncPostBackTrigger - используйте эти триггеры, чтобы указать элемент управления внутри или вне UpdatePanel, который при щелчке должен вызвать частичную обратную передачу страницы.
PostBackTrigger - использовать эти триггеры, чтобы иметь контроль над UpdatePanel, вызывая полную обратную передачу страницы, а не частичную обратную передачу страницы.