2

Excelファイルを処理するWebフォームがいくつかあるので、これを簡単にするために、次のような基本クラスがあります。

public abstract class ExcelImporter : Page {
    public abstract RadAsyncUpload FileUpload { get; }

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        if (FileUpload != null)
        {
            DefineRadAyncUpload();
        }
    }

    private void DefinirRadAyncUpload()
    {
        FileUpload.Skin = Skin;
        FileUpload.Culture = new System.Globalization.CultureInfo("pt-BR");
        FileUpload.TemporaryFolder = "~/temp";
        FileUpload.OnClientFileUploaded = "PostBackAsyncUploadComplete";
        FileUpload.AllowedFileExtensions = new[] { "xls", "xlsx" };
        FileUpload.MaxFileInputsCount = 1;
        FileUpload.FileUploaded += FileUploadOnFileUploaded;
    }

    protected abstract void FileUploadOnFileUploaded(object sender, FileUploadedEventArgs fileUploadedEventArgs);
}

拡張フィルターを除いて、Define メソッドで設定しているものはすべて機能しています。私は何を間違っていますか?このプロパティを設定する必要がある別の瞬間がありますか?

4

1 に答える 1

1

更新された回答:

これを試してみてください:

FileUpload.FileFilters.Add(new FileFilter("Microsoft Excel (*.xls;*.xlsx)", new [] { "xls", "xlsx" }));

ドキュメントから:

「2011 年第 1 四半期から、RadAsyncUpload はファイル フィルタリングをサポートします。ファイル フィルターは、説明と拡張子の 2 つのプロパティを持つオブジェクトです。拡張子プロパティは、ファイル選択ダイアログをフィルター処理する必要がある拡張子のコンマ区切りリストを受け入れます。説明プロパティは、その名前が示すように、拡張セットについて説明します。」

また:

「RadAsyncUpload が IFrame モジュールを利用している場合 (Flash も Silverlight もインストールされていない場合)、フィルタリング機能を使用できないことに注意してください。これは、ブラウザーがネイティブ ファイル フィルタリングのサポートをまったく提供していないためです。フィルターをいくつでも適用できます。次に、ユーザーは [ファイルの種類] コンボ ボックスを使用して、さまざまなフィルターから選択できます。

于 2013-04-12T01:28:54.243 に答える