2017-07-28 21 views
2

這是aspx文件: -不能上傳asp:UpdatePanel中的asp:formview內的文件?

<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> 

我已經試過正試圖通過將其放置在EditItemTemplate中塊內,然後把它放在外面,即外FormView控件,然後外面的UpdatePanel訪問FileUpload1文件。但是FileUpload1.HasFile決不會返回true。有什麼辦法可以解決這個過程。我想訪問Fileupload1對點擊lbtnupdatepersonal文件,所以這是我使用的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

發送我的.aspvb文件代碼 –

+0

文件上傳代碼 –

回答

0

FileUpload1.HasFile不返回True。

這是因爲要將文件發送到服務器,您必須執行完整的回發。由於您的文件上傳控件位於UpdatePanel內,因此限制了您上傳文件。

爲了使其工作,要麼就得從共享加價刪除的UpdatePanel或直接註冊使用FormView的數據綁定事件一個事件,文件上傳。

protected void formviewReg_DataBound(object sender, EventArgs e) 
{ 
    if (formviewReg.CurrentMode == FormViewMode.Edit) 
    { 
     FileUpload fu = e.Row.FindControl("FileUpload1") as FileUpload; 
     ScriptManager.GetCurrent(this).RegisterPostBackControl(fu); 
    } 
} 

注:你需要使用它之前在表單中包括腳本管理。

<asp:ScriptManager ID="ScriptManager" runat="server"></asp:ScriptManager>