在Ext.net (ASP.NET)中上传完成事件

Upload completion event in Ext.net (ASP.NET)?

本文关键字:事件 net Ext ASP NET      更新时间:2023-09-26

如何在ext.net的FileUploadField完成时显示消息?(在客户端使用Javascript)。

我的代码使用ext.net UploadField:

<script type="text/javascript">
    function checkExtension(value) {
        if (value.match("'.png$") != null || value.match("'.jpg$") != null
        || value.match("'.jpeg$") != null || value.match("'.gif$") != null) 
            return true;
        alert("The file must be image");
        return false;
    }
</script>
<ext:FileUploadField ID="FileUploadField1" runat="server" Icon="Attach" ButtonText="Select File" Visible="true" ButtonOffset="1" ButtonOnly="true" Validator="checkExtension">
    <DirectEvents>
        <FileSelected OnEvent="ImageFileSelected" />
    </DirectEvents>
</ext:FileUploadField>

第一个解决方案(完整客户端):

<ext:FileUploadField ID="FileUploadField1" runat="server" Icon="Attach" ButtonText="Select File" Visible="true" ButtonOffset="1" ButtonOnly="true" Validator="checkExtension">
    <DirectEvents>
        <FileSelected OnEvent="ImageFileSelected" 
              Success="Ext.Msg.alert('Success');" 
              Failure="Ext.Msg.alert('Failure');" />
    </DirectEvents>
</ext:FileUploadField>
第二个解决方案(服务器端脚本生成):
public void ImageFileSelected(object sender, DirectEventArgs e) {
    if (this.FileUploadField1.HasFile) {
        // save file here
        X.Msg.Show(new MessageBoxConfig {
           Buttons = MessageBox.Button.OK,
           Icon = MessageBox.Icon.INFO,
           Title = "Success",
           Message = string.Format(tpl, this.FileUploadField1.PostedFile.FileName,  
           this.FileUploadField1.PostedFile.ContentLength)
        });
    }
}

你可以看这里http://examples.ext.net/#/Form/FileUploadField/Basic/

有几种方法可以做到这一点。

一个"廉价的技巧"的方法是添加一个空白文字到你的页面,并在onfileuploaded事件(或任何你想要的事件)与触发你的javascript函数所需的文本更新它的文本。(注意,这种方法只有在有实际的页面回发时才有效!)

在ASP中管理此问题的另一种方法(被认为是"正确"的方法)是:NET是添加一个scriptmanager到您的页面,并在onfileuploaded事件(或任何您想要的事件)中注册您的客户端脚本。这些代码示例有很多,很容易在谷歌上搜索到。