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 年第一季度开始,RadAsyncUpload 支持文件过滤。文件过滤器是具有两个属性的对象 - 描述和扩展。扩展属性接受逗号分隔的扩展列表,选择文件对话框应在其上过滤。描述属性,顾名思义,描述了扩展集。”

还:

“请记住,当 RadAsyncUpload 使用其 IFrame 模块时(未安装 Flash 和 Silverlight 时)没有过滤功能可用。这是因为浏览器根本不提供本机文件过滤支持。可以应用尽可能多的过滤器他们想要。然后,用户可以通过“文件类型”组合框在不同的过滤器中进行选择。”

于 2013-04-12T01:28:54.243 回答