Below is the markup page
<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>
With the above code, whenever the user clicks "btnUpload", there'll be a post back, but there is an update panel to prevent the post back, when I change the PostBackTrigger to AsyncPostBackTrigger, the page didn't post back but the fileUpload.HasFile will be false and was unable to get the file.
What's wrong with the above code?Why the postBackTrigger triggers a post back?