FileUpload和按钮单击UpdatePanel中的刷新页面

时间:2018-07-10 18:52:33

标签: c# asp.net file-upload triggers updatepanel

我在ASP .NET中的页面存在很大问题。 我的MasterPage带有这样的PlaceHolders:

<div class="container-fluid">
            <asp:ScriptManager runat="server"></asp:ScriptManager>
            <asp:UpdatePanel runat="server"><ContentTemplate>
                    <asp:ContentPlaceHolder ID="ContentPlaceholder1" runat="server">

                    </asp:ContentPlaceHolder>
                </ContentTemplate></asp:UpdatePanel>

        </div>

以及与具有FileUpload和Button控件的MasterPage相关的第二页。

<div class="container p-3">
        <div class="row justify-content-md-center">
            <fieldset>
                <div class="text-center p-2">Dodaj nowy typ pokoju:</div>
                <div class="form-group">
                    <asp:TextBox ID="typPokojuTextBox" runat="server" CssClass="form-control input-group-lg" placeholder="Typ pokoju"></asp:TextBox>
                </div>
                <div class="form-group">
                    <asp:TextBox ID="opisPokojuTextBox" runat="server" CssClass="form-control input-group-lg" placeholder="Opis pokoju" TextMode="MultiLine"></asp:TextBox>
                </div>
                <div class="form-group">
                    <asp:TextBox ID="cenaPokojuTextBox" runat="server" CssClass="form-control input-group-lg" placeholder="Cena pokoju"></asp:TextBox>
                </div>
                <div class="form-group">
                    <asp:Label runat="server" ForeColor="Green" CssClass="mr-3">Wybierz zdjęcie pokoju: </asp:Label>
                    <br />
                </div>

                <asp:UpdatePanel ID="UpdatePanel" runat="server">
                    <ContentTemplate>
                        <asp:FileUpload runat="server" ID="okladkaFileUpload" />
                        <asp:Button ID="uploadTypButton" runat="server" CssClass="btn btn-primary" Text="Upload" OnClick="uploadTypButton_Click"></asp:Button>
                        <asp:Label runat="server" CssClass="custom-control-label" ID="dodajTypLabel"></asp:Label>
                    </ContentTemplate>
                    <Triggers>
                        <asp:PostBackTrigger ControlID="uploadTypButton" />
                    </Triggers>                  
                </asp:UpdatePanel>  
                <div class="form-group text-center">
                </div>
                <div>
                </div>
            </fieldset>
        </div>
    </div>

我已经尝试过所有想到的事情。我需要使用UpdatePanel,因为我不想在单击按钮后刷新页面。也许我在UpdatePanel中包含的代码中有一些错误?

我尝试了以下解决方案: AsyncPostBackTrigger PostBackTrigger AJAX AsyncFileUpload

上述解决方案有效,但这是最令人讨厌的事情,即页面的刷新。

请帮助我,我不知道如何更正代码。

编辑:

     <asp:UpdatePanel ID="UpdatePanel" runat="server">
   <ContentTemplate>


            <fieldset>
                <div>
                ///textbox and label's
                </div>
                        <asp:FileUpload runat="server" ID="okladkaFileUpload" />
                        <asp:Button ID="uploadTypButton" runat="server" CssClass="btn btn-primary" Text="Upload"  onchange="Change(this);" OnClick="uploadTypButton_Click"></asp:Button>
                        <asp:Label runat="server" CssClass="custom-control-label" ID="dodajTypLabel"></asp:Label>

            </fieldset>

                        </ContentTemplate>
            <Triggers>
               <asp:PostBackTrigger ControlID="uploadTypButton"  />
           </Triggers>

 </asp:UpdatePanel>

1 个答案:

答案 0 :(得分:0)

要在UpdatePanel控件内使用FileUpload或HtmlInputFile控件,请将提交文件的回发控件设置为面板的PostBackTrigger控件。 FileUpload和HtmlInputFile控件只能在回发方案中使用。

这里是link

如果在UpdatePanel中包含FileUpload控件并使用AsyncPostbackTrigger,则FileUpload控件的HasFile属性将始终为false。