5

これは私の FileUpload コントロールが更新パネルの外にある私のコードですが、更新パネルの下にある保存ボタンをクリックすると、fileUploadAttachment.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>

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);
    }
}

どうすれば修正できますか?

4

2 に答える 2

14

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

<asp:UpdatePanel ...>
  <Triggers>
    <asp:PostBackTrigger ControlID="btnSend" />
  </Triggers>
  ...
</asp:UpdatePanel>
于 2012-10-30T12:22:43.233 に答える
1

このように ASP ページでコードを変更できます

<asp:updatePanel>
<trigger>
<asp:PostBackTrigger ControlID="btnSend">
</trigger>
<\asp:updatePanel>
于 2012-10-30T12:46:48.233 に答える