0

ページに FileUpload コントロールがあります。ユーザーがファイルを選択したら、ファイル名に基づいていくつかの値を変更する必要があります。私はこれを行うための最良の方法を見つけようとしています。私が見ることができる唯一のオプションは、JavaScript で変更イベントをリッスンしてから、いずれか..

a) ポストバックを強制し、フォームを更新する

b) JavaScript といくつかのバックエンド非同期呼び出しを使用して、クライアント側で物事を更新します。

他のオプションはありますか?そうでない場合、どちらが望ましいですか?

ありがとう

4

1 に答える 1

1

jquery を使用している場合changeは、ファイル アップロードの に関数を追加できます。

次の例の html を検討してください。

<input id="myFile" type="file">
<p><label id="myLabel">No File</label></p>

labelそして、選択したファイルの名前でを更新したいとしましょう。これを行うには、次の JavaScript を使用します。

$(document).ready(function () {
    $("#myFile").change(function () {
        $("#myLabel").html($(this).val());
    });
});

これが実際のフィドルです:http://jsfiddle.net/ffkuL/1/

jquery を使用していない場合は、次のようにすることができます。

var upload = document.getElementById("myFile");

upload.onchange = function (e) {   
    var label = document.getElementById("myLabel");
    label.innerHTML = this.value;
};

そして、ここにそのフィドルがあります:http://jsfiddle.net/8PYwK/

(しかし、正直なところ、ASP.NET コントロールを扱う場合、長期的には jquery を使用する方がはるかに簡単であることがわかります。)

明らかに、私のサンプルで変更されたラベルは単なる例です。ただし、そのパターンに従って、クライアント側で必要な変更を行うことができます (ポストバックする必要はありません)。

于 2013-10-11T20:40:44.400 に答える