19

Microsoftによると、FileUpload コントロールは AJAX UpdatePanel と互換性がありません。

次のように、フォームの送信ボタンに PostBackTrigger を追加できることを認識しています。

<Triggers>
  <asp:PostBackTrigger ControlID="Button1" />
</Triggers>

問題は、これにより、フォームが完全なポストバックを実行することを強制され、最初に UpdatePanel を使用するという点がすべて無効になることです。ページ全体が更新されないこの問題の回避策はありますか?

4

7 に答える 7

8

それができるサードパーティのコンポーネントを知っています。これはswfuploadと呼ばれ、無料でオープン ソースであり、javascript とフラッシュを使用して魔法を行います。

ここに彼らが提供する機能のリストがあります: (彼らのサイトから)

  • ダイアログでCtrl/Shiftキーを押しながら選択して、複数のファイルを一度にアップロードします
  • すべてのイベントでの Javascript コールバック
  • アップロード開始前にファイル情報を取得する
  • XHTML と css を使用してアップロード要素をスタイル設定する
  • HTML を使用したファイルのアップロード中に情報を表示する
  • ページのリロードは不要
  • Flash をサポートするすべてのプラットフォーム/ブラウザーで動作します。
  • Flash または JavaScript が利用できない場合、通常の HTML アップロード形式に正常に低下します
  • アップロード開始前にファイルサイズを制御する
  • 選択したファイルタイプのみをダイアログに表示
  • アップロードをキューに入れ、アップロードを開始する前にファイルを削除/追加します

また、コントロールをいじることができるデモ エリアもあります。そうすれば、それがまさにあなたが望むものであることを確認できます。

プロジェクトの 1 つでそれを使用しましたが、これまでのところ失敗したことはありません。これは安全な賭けだと思います。

ああ、ここにダウンロード ページがあります: http://code.google.com/p/swfupload/

于 2008-08-30T07:16:36.717 に答える
3

AJAXドキュメント全体をリロードするだけでは、を介してファイルをアップロードすることはできませんHTML。純粋なHTML(WordPressで使用されるなど、より一般的です)を使用する場合は、sを使用するかiframe、Svenが提案するswfuploadのようなものを使用する必要があります。

于 2008-08-31T13:49:08.760 に答える
2

これをボタン コントロールに追加します。

OnClientClick="javascript:document.forms[0].encoding = 'multipart/form-data';"

-また-

ページの Form タグを次のようにします。

<form id="form1" runat="server" enctype="multipart/form-data">
于 2008-10-20T07:30:10.253 に答える
1

先日、同じ問題に遭遇したときにこれを見つけました: http://vinayakshrestha.wordpress.com/2007/03/13/uploading-files-using-aspnet-ajax-extensions/

私の実装では、iframe をモーダル ポップアップに配置し、style="display:none" のボタンを追加して、ポップアップを閉じる処理を行いました。iframe の変化を監視する JavaScript 関数に、document.getElementById("<%=btnCloseUpload.C​​lientID%>").click(); を追加しました。隠しボタン用。

于 2008-09-16T17:38:30.477 に答える
1

AJAX AsyncFileUpload を試してください。意図した用途で使用するとうまく機能します (UploadedComplete イベントを処理します)。

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AsyncFileUpload/AsyncFileUpload.aspx

于 2010-02-08T15:55:13.923 に答える
0

FileUploadページに言及する「ターゲット」属性を持つIFrameを使用できますか、リンクでJqueryの例を使用でき ますか? iframeを使用して非同期(AJAX)ファイルアップロードを作成するには?

于 2013-09-10T10:26:27.573 に答える
-1

アップロード イベントをトリガーするボタンでは、UseSubmitBehaviorプロパティを false に設定する必要があります。

clsUploadButton.UseSubmitBehavior = False;
于 2012-03-02T17:14:37.873 に答える