无法在asp:UpdatePanel内的asp:formview中上传文件?

时间:2017-07-28 06:36:05

标签: c# asp.net ajax updatepanel formview

这是aspx文件: -

<ajaxToolkit:ModalPopupExtender ID="ModalProgress" runat="server" TargetControlID="panelUpdateProgress" BackgroundCssClass="modalBackground" PopupControlID="panelUpdateProgress" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:FormView ID="formviewReg" runat="server" Width="100%" AllowPaging="false" OnItemUpdating="formviewReg_ItemUpdating">
<EditItemTemplate>
<asp:LinkButton ID="lbtnupdatepersonal" runat="server" OnClick="lbtnupdatepersonal_Click" ValidationGroup="g1">Update</asp:LinkButton>
<asp:FileUpload ID="FileUpload1" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="lbtneditpersonal" runat="server" OnClick="lbtneditpersonal_Click">Edit</asp:LinkButton>
//some html controls
</ItemTemplate>
</asp:FormView>
</ContentTemplate>
</asp:UpdatePanel>

我尝试过尝试访问FileUpload1中的文件,方法是将其放在EditItemTemplate块中,然后将其放在窗外,即在formview之外,然后放在updatepanel之外。但FileUpload1.HasFile绝不会返回true。有什么方法可以解决这个过程。我想在点击lbtnupdatepersonal时访问Fileupload1的文件,所以这就是我在aspx.cs文件中使用的内容: -

protected void lbtnupdatepersonal_Click(object sender, EventArgs e)
    {

        if (FileUpload1.HasFile)//returns false
        {
            ViewState["imageext"] = uploadFile1(FileUpload1.PostedFile, "StudentPhoto/");
        }
        formviewReg.UpdateItem(false);

    }

1 个答案:

答案 0 :(得分:0)

FileUpload控件在UpdatePanel控件内无法使用异步回发上传文件。这是因为出于安全原因,默认情况下在客户端限制文件上载和文件操作。因此,无法在UpdatePanel中使用异步回发上传文件。

我发现这个网站声明它提供了解决这个问题的方法:
https://www.codeproject.com/Articles/482800/FileplusUploadplusinplusUpdateplusPanel