Ajax – ASP.NET – FileUpload with PostBack Trigger

ajaxasp.netpostbackupdatepanel

I have an UpdatePanel which has an upload control and a button to upload. The button is set as a trigger, but the event handler for the button fails to execute on the first PostBack.

My ASPX code is:

<asp:UpdatePanel ID="updPages" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <div class="tabs">
            <ul>
                <li><asp:LinkButton ID="lnkContentsPages" runat="server" OnClick="updateContents" CommandArgument="pages">Pages</asp:LinkButton></li>
        <%-- these tabs change the ActiveViewIndex to show a different UserControl --%>
                <li><asp:LinkButton ID="lnkContentsImages" runat="server" OnClick="updateContents" CommandArgument="images">Images</asp:LinkButton></li>
            </ul>
            <div class="tabbedContent">
                <asp:MultiView runat="server" ID="mltContentsInner" ActiveViewIndex="0">
                    <asp:View ID="viwContentsImages" runat="server">
                        // ajax usercontrol for a list of images - works fine with ajax
                        <fieldset>
                            <legend>Upload New</legend>
                            <div class="formRow">
                                <asp:Label ID="lblFile" runat="server" Text="Filename" AssociatedControlID="uplFile" />
                                <asp:FileUpload ID="uplFile" runat="server" />
                            </div>
                            <div class="formRow">
                                <asp:Label ID="lblImageDescription" runat="server" Text="Description" AssociatedControlID="txtImageDescription" />
                                <asp:TextBox runat="server" ID="txtImageDescription" />
                            </div>
                            <asp:Button ID="btnUpload" runat="server" Text="Upload" CssClass="c3button btnUpload" CausesValidation="false" OnClick="btnUpload_Click" />
                        </fieldset>
                    </asp:View>
                    <asp:View ID="viwContentsPages" runat="server">
                        // ajax usercontrol - works fine with ajax
                    </asp:View>
                </asp:MultiView>
            </div>
        </div>
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="btnUpload" />
    </Triggers>
</asp:UpdatePanel>

The button works without fail on the second and subsequent times, just not the first. Is there any reason for this?

Best Answer

need to add enctype="multipart/form-data" in the form tag of the page.

faced the same problem and the above work around made it upload the file in the first attempt. hope some one will find it useful.

Related Topic