asp.net updatePanel PostBackTrigger triggering full postback

删除回忆录丶 提交于 2019-12-24 15:50:25

问题


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?


回答1:


File upload will not work with AsyncPostBackTrigger. It will only work with PostBackTrigger.
SOLUTION : If You want to upload file with AsyncPostBackTrigger than you have to use ajaxtoolkit. And in AjaxToolkit their is Control name with "AsyncFileUpload".
Hope You know how to add AjaxToolkit to your Toolbox. If you dont know than tell me i will guide you.




回答2:


You have not defined event of control, you have to tell that trigger on which event of control:

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

UPDATE:

you have to use async postback trigger:

AsyncPostBackTrigger - use these triggers to specify a control within or outside of the UpdatePanel that, when clicked, should trigger a partial page postback.

PostBackTrigger - use these triggers to have a control within the UpdatePanel cause a full page postback rather than a partial page postback.



来源:https://stackoverflow.com/questions/24134740/asp-net-updatepanel-postbacktrigger-triggering-full-postback

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!