2012-10-30 53 views
5

これは私のFileUploadコントロールが偽FileUpload.HasFileは常にfalseを与える

ASPX

<asp:Literal runat="server" ID="lblAttachment" Text="Attachment:" /><asp:FileUpload 
      ID="fileUploadAttachment" runat="server" Width="488px" /> 
     <asp:UpdatePanel ID="updatePanelAction" runat="server" UpdateMode="Always"> 
      <ContentTemplate> 
       <asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" ValidationGroup="Save" /> 
       <asp:Button ID="btnTest" runat="server" Text="Test" Enabled="false" OnClick="btnTest_Click" /> 
       <asp:Button ID="btnConfirmTest" runat="server" Text="Confirm Test" Enabled="false" 
        OnClick="btnConfirmTest_Click" /> 
       <asp:Button ID="btnSend" runat="server" Text="Send" Enabled="false" OnClick="btnSend_Click" /> 
      </ContentTemplate> 

     </asp:UpdatePanel> 
fileUploadAttachment.HasFile =更新パネル外であるが、私は更新パネルの下にある保存ボタンをクリックしたときに与える私のコードです

CS

protected void btnSave_Click(object sender, EventArgs e) 
{ 
    CampaignBAL campaignBAL; 
    string tmpFileName = ""; 
    User user; 
    Campaign campaignDetail = new Campaign(); 
    int? campaignID; 

    if (fileUploadAttachment.HasFile) // return always false 
    { 
     tmpFileName = string.Format("{0}\\{1}{2}", Server.MapPath("TempUpload"), Guid.NewGuid(), Path.GetExtension(fileUploadAttachment.PostedFile.FileName)); 
     fileUploadAttachment.PostedFile.SaveAs(tmpFileName); 
    } 
} 

私はそれを修正することができますどのように私を助けてください

+0

のようにASPページにコードを変更することができますあなたに役立つ十分なソースコードを提供しました。さらに、実際にファイルをコントロールにアップロードする行は1つありません。 'FileUploadコントロールは、ユーザーがアップロードするファイルを選択した後、自動的にファイルをサーバーに保存しません。ユーザーが指定されたファイルを提出できるようにするには、明示的にコントロールまたはメカニズムを提供する必要があります。例えば、あなたがファイルをアップロードするためにクリックするボタンを提供することができます。 ' - あなたのコードの一部を残しているか、まだそれを書いていないようです。 –

+0

コードをもう一度見ると、ファイルをアップロード/保存しようとしたようですが、ファイル自体をコントロール自体に追加することはできません。この簡単な例を読むことができます。http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.fileupload.aspx –

+0

通常のテキストファイルを添付して、保存を使用してアップロードしていますボタンクリック(btnSave_Click) –

答えて

14

あなたは、ポストバックを追加する必要がありますUpdatePanel以内に投稿のコントロールのためにトリガー:

<asp:UpdatePanel ...> 
    <Triggers> 
    <asp:PostBackTrigger ControlID="btnSend" /> 
    </Triggers> 
    ... 
</asp:UpdatePanel> 
+0

はい、ありがとうございます。ちょうど、私のようなdoofusではなく、 'FileUpload'のコントロールを'

+0

また、マスターページにUpdatePanelがある場合、そこにPostBackTriggerを追加することはできません。したがって、その状況では、コード でこれを行う必要があります。 'ScriptManager sm = ScriptManager.GetCurrent(this.Page); scriptManager.RegisterPostBackControl(this.btnUpload); // btnUploadを右に変更するButtonのID' –

1

あなたがいないfileUploadAttachment` `は何種類この

<asp:updatePanel> 
<trigger> 
<asp:PostBackTrigger ID="btnSend"> 
</trigger> 
<\asp:updatePanel> 
+0

PostBackTriggerコントロールにID属性がない –

関連する問題