9月30日的AjaxControlToolkit 30930里增加了两个新的控件:AsyncFileUpload和Seadragon,貌似目前园子里还没人写过...

就试着自己写写吧

本人.net小白,有什么错误的地方望大家指出。

 

其实AjaxControlToolkit 挺傻瓜化的,先在VS建立歌网站,然后打开默认的default.aspx,拖个ScriptManager进去,添加下AjaxControlToolkit 的注册,然后拖个AsyncFileUpload进去,就基本能用了...

 1AjaxControlToolkit--AsyncFileUpload<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %> 
 2AjaxControlToolkit--AsyncFileUpload
 3AjaxControlToolkit--AsyncFileUpload<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> 
 4AjaxControlToolkit--AsyncFileUpload
 5AjaxControlToolkit--AsyncFileUpload<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd%22> 
 6AjaxControlToolkit--AsyncFileUpload
 7AjaxControlToolkit--AsyncFileUpload<html xmlns="http://www.w3.org/1999/xhtml%22> 
 8AjaxControlToolkit--AsyncFileUpload<head runat="server"> 
 9AjaxControlToolkit--AsyncFileUpload    <title>AsyncFileUpload</title> 
10AjaxControlToolkit--AsyncFileUpload</head> 
11AjaxControlToolkit--AsyncFileUpload<body> 
12AjaxControlToolkit--AsyncFileUpload    <form id="form1" runat="server"> 
13AjaxControlToolkit--AsyncFileUpload    <div> 
14AjaxControlToolkit--AsyncFileUpload        <asp:ScriptManager ID="ScriptManager1" runat="server"> 
15AjaxControlToolkit--AsyncFileUpload        </asp:ScriptManager> 
16AjaxControlToolkit--AsyncFileUpload        <cc1:AsyncFileUpload ID="AsyncFileUpload1" runat="server" /> 
17AjaxControlToolkit--AsyncFileUpload    </div> 
18AjaxControlToolkit--AsyncFileUpload    </form> 
19AjaxControlToolkit--AsyncFileUpload</body> 
20AjaxControlToolkit--AsyncFileUpload</html>
21AjaxControlToolkit--AsyncFileUpload

 

然后我们看下几个有用的属性吧:

属性

说明

CompleteBackColor 上传成功后显示的颜色(默认为淡黄绿色Lime)
ErrorBackColor 上传出错后显示的颜色(默认为红Red)
UploadingBackColor 正在上传时显示的颜色(默认为白)
UploaderStyle 有两种选择,Traditional 和 Modern,默认是Traditional,没大弄明白两者在实际中的区别,希望有明白的大大帮我解答一下吧
ThrobberID 在上传文件时显示的控件的ID,一般是用GIF图片
HasFile 返回一个布尔值,来判断是否存在文件

其他还有几乎控件都通用的Width,Length,Font,Border,CSS样式之类的属性就不介绍了

 

再来看下控件的事件吧:

事件

执行方式

说明

OnClientUploadError

Client

当上传出错事执行

OnClientUploadStarted

Client

当上传开始时执行

OnClientUploadComplete

Client

当上传完成时执行

onuploadedcomplete

Server

当上传完成时执行

 

有了属性和事件,就重新定义下我们的AsyncFileUpload吧:

 

我们首先需要个Image (当然,文本也可以),好在上传文件时页面上有点显示,这年头不是都强调用户体验嘛

 

      
<asp:Image ID="ImageUploading" runat="server" ImageUrl="/images/loader.gif"/>

还需要个Label,好显示上传前后的信息:

<asp:Label ID="Labeluploadstatus" runat="server" Text=""></asp:Label>

好了,现在可以定义我们的AsyncFileUpload了:

<cc1:AsyncFileUpload ID="AsyncFileUpload1" Width="300px" runat="server" 
            OnClientUploadError
="AsyncFileUpload1_UploadError" OnClientUploadStarted="AsyncFileUpload1_StartUpload" 
            OnClientUploadComplete
="AsyncFileUpload1_UploadComplete" 
            CompleteBackColor
="Lime" UploaderStyle="Modern" 
            ErrorBackColor
="Red" ThrobberID="ImageUploading" 
            onuploadedcomplete
="AsyncFileUpload1_UploadedComplete" 
            UploadingBackColor
="Blue" />

接着开始写JavaScript事件:

首先是上传失败的提示:

function AsyncFileUpload1_UploadError(sender, args) 

    document.getElementById(
'Labeluploadstatus').innerText = "对不起,文件“" + args.get_fileName() + "”上传出错,原因:" + args.get_errorMessage() ; 
}

然后是开始上传时的提示:

 

function AsyncFileUpload1_StartUpload(sender, args) 

    document.getElementById(
'Labeluploadstatus').innerText = "文件“" + args.get_fileName() + "”正在上传,请稍等AjaxControlToolkit--AsyncFileUpload"
}

最后是上传完成后的提示: 

function AsyncFileUpload1_UploadComplete(sender, args) 

    document.getElementById(
'Labeluploadstatus').innerText = "文件“" + args.get_fileName() + "”上传完成,文件大小:" + args.get_length() + " bytes"
}

然后就是写服务器事件了:

 

 

 1AjaxControlToolkit--AsyncFileUploadprotected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e) 
 2

基本大功告成,上图看下效果吧:

AjaxControlToolkit--AsyncFileUpload

AjaxControlToolkit--AsyncFileUpload

 

AjaxControlToolkit--AsyncFileUpload

AjaxControlToolkit--AsyncFileUpload

 

AjaxControlToolkit--AsyncFileUpload

 

 

大体就这些吧

有错误的地方请大家指正

另外那个Seadragon挺好玩的,要是能自动生成所需的图片和XML就更好了...

相关文章:

  • 2022-03-08
  • 2021-11-29
  • 2022-12-23
  • 2021-08-11
  • 2021-07-27
  • 2021-06-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-26
  • 2022-01-11
  • 2021-08-04
  • 2021-12-24
  • 2021-10-05
  • 2021-12-17
相关资源
相似解决方案