2012-07-17 128 views
1

我在嘗試使用ASP.NET文件上傳控件時遇到困難。 發生什麼事是,當我從後面的代碼調用文件上傳控件時,我總是得到一個FileUploadControl.HasFile = false。 我已經進行了一些研究,並嘗試了不同的方法無濟於事。該控件正在用於以下場景: 該控件包含在一個div中,通過JQuery將其作爲彈出對話框調用。與文件上傳控件一起,有兩個鏈接按鈕將操作上述控件(從文件導入XML並進行操作)。ASP.NET文件上傳控件問題

謝謝。

下面是我的代碼示例。

<asp:scriptmanager id="ScriptManager1" runat="server"> 
    </asp:scriptmanager> 
<div style="text-align: center; margin-left: auto; margin-right: auto"> 
    <asp:fileupload id="FileUploadControl" runat="server" /> 
    <asp:updatepanel runat="server"> 
       <ContentTemplate>      
        &nbsp; 
        <asp:LinkButton ID="Append" runat="server" Text="Append" OnClick="Append_Click"></asp:LinkButton> 
        &nbsp; 
        <asp:LinkButton ID="Overwrite" runat="server" Text="Overwrite" OnClick="Overwrite_Click"></asp:LinkButton> 
       </ContentTemplate> 
       <Triggers> 
        <asp:PostBackTrigger ControlID="Append" /> 
        <asp:PostBackTrigger ControlID="Overwrite" /> 
       </Triggers> 
      </asp:updatepanel> 
</div> 
+1

Afaik文件上傳不能使用AJAX腳本管理器的東西編寫腳本。你將不得不尋找一個不同的解決方案。現在,Javascript上傳文件的工作,但這不包括在當前的ASP.NET腳本管理器。你將不得不做一個完整的回發。這意味着您的頁面將完全重新加載。 – sinni800 2012-07-17 14:06:06

+0

當你點擊'UpdatePanel'中的一個按鈕時,你是否期望文件被上傳? – freefaller 2012-07-17 14:06:40

+0

freefaller,這是我放在後面的代碼。 _if(FileUploadControl.HasFile) { 嘗試 { 的XDocument文檔= XDocument.Load(FileUploadControl.FileContent); //代碼 } } _ – DottoreM 2012-07-17 14:09:01

回答

1

您需要刪除UpdatePanel。你不能上載部分回發一個文件,如果你在UpdatePanel有觸發文件上傳是沒有必要的:

<div style="text-align: center; margin-left: auto; margin-right: auto"> 
    <asp:fileupload id="FileUploadControl" runat="server" /> 
     &nbsp; 
     <asp:LinkButton ID="Append" runat="server" Text="Append" OnClick="Append_Click"></asp:LinkButton> 
     &nbsp; 
     <asp:LinkButton ID="Overwrite" runat="server" Text="Overwrite" OnClick="Overwrite_Click"></asp:LinkButton> 
</div> 

注:一般小費UpdatePanel發展。如果遇到任何不合理的怪異消除UpdatePanel並測試您的代碼。根據頁面/控件的複雜性,UpdatePanel有很多限制。

+0

我已經嘗試了剛剛發佈的確切代碼。它仍然不起作用。 此外,我已經在page_load中插入了下面的代碼行,沒有運氣。 012.File.Attributes.Add(「enctype」,「multipart/form-data」); ' – DottoreM 2012-07-17 14:34:18

+0

謝謝,以上是解決我的問題。我無法工作的原因是因爲我有一些代碼無法正常工作並干擾控制。 (JQuery對話框)。只要我修好它就像魅力一樣。 – DottoreM 2012-07-19 13:41:20