[ASP.NET] 在UpdatePanel裡使用FileUpload控制項

4 mins.

一般使用FileUpload控制項時,只要PostBack回後台,有上傳的檔案一定取的到
但是某天我在外面包了一個UpdatePanel

慘案發生了

1
2
3
4
5
6
<asp:updatepanel id="UpdatePanel1" runat="server">
<contenttemplate>
<asp:fileupload id="FileUpload1" runat="server">
<asp:button id="Button1" runat="server" text="Button">
</asp:button></asp:fileupload></contenttemplate>
</asp:updatepanel>

PostBack回到後台接不到上傳的檔案orz
還好有同事愈過這樣的情況

同事說只要加上Trigger就可以了,馬上測試

1
2
3
4
5
6
7
8
9
<asp:updatepanel id="UpdatePanel1" runat="server" updatemode="Conditional">
<contenttemplate>
<asp:fileupload id="FileUpload1" runat="server">
<asp:button id="Button1" runat="server" text="Button">
</asp:button></asp:fileupload></contenttemplate>
<triggers>
<asp:postbacktrigger controlid="Button1">
</asp:postbacktrigger></triggers>
</asp:updatepanel>

捷克~真的可以了
原來是FileUpload一定要觸發PostBack,後台才能取得上傳的檔案
MSDN中有說到,FileUpload和UpdatePanel不相容
學藝不精阿~還是要多多看MSDN