4

.NET 2.0 ファイルアップロード コントロールがあり、その横に次のようなボタンがあります。

<asp:fileupload id="uploadedFile" runat="server" />
<asp:Button runat="server" ID="upload" Text="Upload" OnClick="Page_Load"/>

現在、これはすべて Web パーツ内のページにあります (sharepoint、つまり、Web パーツに慣れていない人にとっては、基本的には iframe です)。Page_Load を呼び出していることにも注意してください。

ユーザーがファイルを参照した後、コントロールのhasfileプロパティは(最初は) になります。罰金。ユーザーがボタンをクリックすると、ファイルがアップロードされます。そこに、ファイルがアップロードされていることを知らせるメールを送信するコードがあります。uploadedFiletruefalsehasfiletrue

ユーザーがブラウザの更新ボタンを押すと、ページが再読み込みされますが、hasfileプロパティはクリアされないため、別のメールが送信されます! (キャッシュなしでリロードする Firefox の機能を使用すると、すべてが正しく更新されます)

hasfileFileUpload コントロールのプロパティをクリアするにはどうすればよいですか? または、ユーザーがリロードしたときにページがキャッシュをスキップするようにするにはどうすればよいですか?

Page_Load 以外の関数を呼び出してもかまいませんが、パラメーターを受け取ることができる必要があるため、Page_Load からも呼び出すことができます (私が行っている他のことのために)。

4

2 に答える 2

15

hasfileLoadPage()関数にプロパティをクリアする機能を追加します。これは、(ページが読み込まれるときに)更新するときに呼び出されます。

または、機能を配置する代わりに、その機能を実装する関数をコーディングし、ページの読み込みから呼び出します。 ガイドコード

private void clearFileUpload()
{
    fileUpload.Dispose();
}

また

ファイルをアップロードした直後に問題に対処してみてください。

private void clearFileUpload()
{
    fileUpload.PostedFile.InputStream.Dispose();
    // fileUpload.HasFile is now  false
}
于 2012-05-08T01:18:10.073 に答える
0

FileUpload をクリアするには、次のようにします。

fubanner.Attributes.Clear();
于 2017-03-09T11:55:05.443 に答える