2012-03-21 81 views
2

私は複数の更新パネル(asp:UpdatePanel)を持っており、それぞれの更新パネルにデータが挿入され、対応するグリッドに表示されます(グリッドも更新パネルに含まれます)。
私はasp:FileUploadコントロールを持っているという問題があります。ほとんどのコントロールがAutoPostBack = "true"のため、これらの更新パネルにデータが挿入されるとリセットされます。
私は、近い解決策の一つを発見した: -
http://www.codeproject.com/Tips/101834/How-to-Maintain-FileUpload-Control-s-State-after-P
PostBackの後にFileUploadコントロールの状態を維持する方法

 if (Session["FileUpload1"] == null && theFile.HasFile) 
     { 
      Session["FileUpload1"] = theFile; 
      lblStatus.Text = theFile.FileName; 
     } 
     else if (Session["FileUpload1"] != null && (!theFile.HasFile)) 
     { 
      theFile = (FileUpload)Session["FileUpload1"]; 
      lblStatus.Text = theFile.FileName; 
     } 
     else if (theFile.HasFile) 
     { 
      Session["FileUpload1"] = theFile; 
      lblStatus.Text = theFile.FileName; 
     } 


をしかし、この解決策は、私の問題を解決していません。残念ながら、これらの3つのif-elseチェックはすべて条件をパスしていません。
FileUploadコントロールと並行して使用されるUpdatePanelに関連する問題があると思います。
多くの記事を検索しましたが、解決策が見つかりませんでした。一番早くこのことについて私を助けてください。

答えて

0

あなたは正しいです! FileUpLoadがUpdatePanelで機能しません。 動作させるには、完全なポストバックを強制する必要があります。 選択したファイルを保存するには、updatePanelにaspボタンを追加する必要があります。 クリックイベントでは、セッション内でfileNameを保存します。 また、完全ポストバックを強制するには、UpdatePanelにトリガーを追加する必要があります。あなたは、次のURLで読むことができます詳細は

 <asp:UpdatePanel ID="UpdatePanel4" runat="server"> 
     <ContentTemplate> 
      <asp:FileUpload ID="FileUpload1" runat="server"/> 
      <asp:Button ID="Button3" runat="server" onclick="Button3_Click" Text="Button" /> 
     </ContentTemplate> 
     <Triggers> 
      <asp:PostBackTrigger ControlID="Button3" /> 
     </Triggers> 
    </asp:UpdatePanel> 

:UpdatePanelのは次のようになります。 http://www.codeproject.com/Articles/16945/Simple-AJAX-File-Upload

ところで、私は入れて管理することができています

+0

...それは参考になりましたホープ更新パネル外のFileUploadコントロール。私はあなたのソリューションを他の時代にテストしようとします。 –

関連する問題