这是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);
}
答案 0 :(得分:0)
FileUpload控件在UpdatePanel控件内无法使用异步回发上传文件。这是因为出于安全原因,默认情况下在客户端限制文件上载和文件操作。因此,无法在UpdatePanel中使用异步回发上传文件。
我发现这个网站声明它提供了解决这个问题的方法:
https://www.codeproject.com/Articles/482800/FileplusUploadplusinplusUpdateplusPanel