2010-08-27 24 views
2

我遇到了具有asyncfileupload控件的Webusercontrol問題。 我的websusercontrol正在加載一個佔位符控件,該控件由updatepanel.Due包裝爲asyncpostback,我必須加載並清除佔位符的控件。Asyncfileupload在webusercontrol中不起作用

webusercontrol完美地工作,除了asyncfileupload,它根本不想上傳。我可以確保代碼沒有錯誤,因爲我曾經將webusercontrol作爲* .aspx站點運行。

我想問題是,控制必須清除並重新加載每個asyncpostback?

回答

1

我認爲一旦將AsyncFileUpload控件放入動態加載的自定義用戶控件中,就會出現問題。

我設法get around this issue after reading this link

基本上,我放置父.aspx頁上的虛設AsyncFileUpload控制。

E.g. Default.aspx

<span style="display:none"> 
     <asp:AsyncFileUpload ID="DummyAsyncFileUpload" runat="server" /> 
    </span> 

注意,AsyncFileUpload控制從用戶隱藏,但仍可見ASP.NET。

我的理論是這樣的:

爲了上傳文件,你必須使用不同的編碼類型(multipart/form-data)發佈表單的內容。

當您將AsyncFileUpload放置在UpdatePanel中時,無論出於何種原因,都不會設置編碼類型,並將其保留爲空。

例如document.forms[0].enctype = ''

因此,當您發佈表單時,它不知道如何處理文件上傳。

通過在Default.aspx頁面上放置假AsyncFileUpload,ASP.NET檢測到FileUpload控件的存在,並相應地設置編碼類型。

例如document.forms[0].enctype = 'multipart/form-data'