2012-07-20 71 views
5

My QuestionFileUpload控制工作第二次點擊,但不是第一次嘗試保存發佈的文件?

我設法回答自己,但是同一組功能有另一個問題。出於某種原因,發佈文件的保存事件的第一次回發命中Ol'對象未設置爲對象錯誤的實例,但是第二次嘗試上載文件併發起保存事件(轉換爲byte []時,存儲爲SQL Server BLOB)它做的一切都應該做。

Same problem here

有使用AJAX AsyncUpload控制的一個很好的建議,但是我是去除病因和治療沒有問題的堅定信仰者。我將繼續沿着這條路線,以最好的瞭解我的asp.net等

會有一個wizrd在你之間,可以幫助我確定爲什麼我得到「對象參考不設置爲obj的inst」錯誤在第一次回發,但第二它工作正常。內容頁面有一個母版頁,它將內容頁面包裝在更新面板中。不是我決定這麼做的。還有一個更新面板,其中包含針對我的保存事件的回發觸發器。

你的想法是什麼人?

回答

12

問題(如此處所示http://forums.asp.net/t/1060363.aspx)似乎是在周圍面板上使用可見性屬性(因爲它似乎來自鏈接問題)。

建議的解決方法是使用CSS的可視性代替使用,使其無形 -

<asp:Panel ID="pnlUpload" runat="server" class="workerDetailsPanelLeft" style="display:none"> 

的解釋爲這起線程

如果你的容器被設置爲不可見,上傳控件實際上不是以HTML格式呈現的,導致表單的enctype不能設置爲enctype =「multipart/form-data」,導致文件上傳控件不會將所選文件發送回服務器。解決方法是要麼確保FileUpload控件呈現爲HTML(通過其樣式設置爲顯示:在可見=假代替無),或通過手動設置ENCTYPE

所以另一個解決辦法是改變您的表格標籤到此

<form id="form1" enctype="multipart/form-data" runat="server"> 

我認爲這些應該解決您的問題。

+1

非常好,我現在明白了。非常感謝您指出這一點。我明顯忽略了它。 +1並回答:-) – dotnetnewb 2012-07-20 10:32:04

4

您可以通過Page_Load事件上的代碼執行相同的操作。輸入此代碼即可解決問題。

Page.Form.Attributes.Add("enctype", "multipart/form-data"); 
相關問題