2012-07-20 14 views
5

My QuestionFileUploadコントロールは2回目のクリックで機能しますが、最初に投稿したファイルを保存しようとしていませんか?

私は自分自身に答えてくれましたが、同じ機能セットには別の問題があります。なんらかの理由で、投稿されたファイルのsaveイベントの最初のポストバックは、オブジェクトのインスタンスに設定されていないOl 'Objectにヒットしますが、ファイルをアップロードしてsaveイベントを発生させますSQL ServerのBLOBとして格納されている)、すべての処理が行われます。

Same problem here

AJAX AsyncUploadコントロールを使用しての良い提案は、しかし、私は原因を取り除いて、問題を処理しない固く信じていますがあります。私はasp.netなどの私の理解を最大限にこのルートを続行します。

最初のポストバックで "objのオブジェクトに設定されていないオブジェクトの参照"を取得する理由を特定するのを助けるwizrdがありますか?それはうまく動作します。コンテンツページには、コンテンツページを更新パネルにラップするマスターページがあります。これをする決断ではありません。保存イベントをターゲットにしたポストバックトリガを持つ更新パネルもあります。

あなたの考えは何ですか?

答えて

12

問題は、周囲のパネルのvisibilityプロパティを使用すると(リンクされた質問のようです)、この問題が発生しているようです(この例ではhttp://forums.asp.net/t/1060363.aspx)。

提案回避策は、それを不可視にする代わりにCSSの可視性を使用するので、これを使用することです -

<asp:Panel ID="pnlUpload" runat="server" class="workerDetailsPanelLeft" style="display:none"> 

説明をこのためスレッドからさ

あなたのコンテナが見えないに設定されている場合は、アップロードコントロールは実際にHTMLとしてレンダリングされず、フォームのenctypeがenctype = "multipart/form-data"に設定されず、ファイルアップロードコントロールが選択したファイルをサーバーに戻さないようにします。 、または手動で

だから、別の回避策を変えることであろうのenctypeに設定することで:回避策はどちらか(何を可視=偽の代わりに、ディスプレイにそのスタイルを設定しないことで)するFileUploadコントロールをHTMLにレンダリングされることを確認することですあなたのフォームタグを

<form id="form1" enctype="multipart/form-data" runat="server"> 

私はあなたの問題を解決するはずだと思います。

+1

優れています。それを指摘してくれてありがとうございます。私はそれをはっきり見落とした。 +1と答え:-) – dotnetnewb

4

Page_Loadイベントのコードでも同じことができます。このコードを入力すると問題が解決します。

Page.Form.Attributes.Add("enctype", "multipart/form-data"); 
関連する問題