做项目的时候遇到了这样一个问题,如果用普通的ASP.NET FileUpload控件实现文件上传,那么页面会刷新,那么页面上用JS拼出的元素就会消失,为了上传文件,又不能刷新页面,ajaxfileupload插件是一个很好的选择(插件下载地址:http://www.phpletter.com/DOWNLOAD/)
ajaxfileupload是jQuery的一个插件,使用这个插件同时要引用jQuery.js文件
直接上代码吧
JS代码
//执行AJAX上传文件
$.ajaxFileUpload({
url: '/Web/Teacher/ImportAchievements.ashx',
secureuri: false,
fileElementId: 'fulAchievements',
dataType: 'json',
success: function (data, status) {
alert(data[0]);
}
});说明:
1.这个方法很像大家熟知的$.ajax方法
2.参数说明
url:AJAX的后台代码文件,要接收前台传来的文件数据
secureuri:是否对上传的文件加密
fileElementId:HTML中<input type="file"/>上传控件的Id值,这里需要注意的是,后台代码是通过name-value的形式接收数据的,所以后台代码是通过name来接收数据的,而不是Id(根本原因是,这个方法会自动生成一个表单,将表单提交给后台代码处理)。
dataType:数据类型,一般是‘json’
success:上传成功后执行的回调函数
ASP.NET一般处理程序中的代码
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/html";//这里很关键,虽然前台数据类型是json,但这里一定要写html
//获取前台传来的文件
HttpFileCollection files = HttpContext.Current.Request.Files;
//将文件保存在网站目录中
files[0].SaveAs(context.Server.MapPath("/Web/uploadFiles/Achievements.xls"));
//返回用json数据格式表示的提示
string result = "[" + "\"" + "成绩导入成功" + "\"" + "]";
context.Response.Write(result);
}这样就实现了AJAX上传文件,页面不会刷新,有需要的试试吧。
经典网页设计系列精彩继续,今天这篇文章向大家展示20新鲜出炉的 HTML5 网站作品,让大家感受一下 HTML5 的魅力。HTML5 新增了许多重要的特性,像 video、audio 和 canvas 等等,这些特性使得能够很容易的网页中包含多媒体内容,而不需要任何的插件或者 API。而其它的新元素,例如 section、article、header 和 nav 等,则是用来丰富网页内容。
- 15个精美的 HTML5 单页网站作品
- 10个很酷的 HTML5 字体应用网站
- 12个精美的 HTML5 个人网站欣赏
- 10个精美的 HTML5 企业网站欣赏
- 15款精美的免费 HTML5 网站模板
Jib
Let’s Travel Somewhere
Pierrick Calvez Studio
Zipper Galeria
Magic Leap
The Good Man
Shiftbrain
Oscar Charlie
梦想天空(jizhula.com)关注前端开发技术,展示HTML5和CSS3应用,分享jQuery插件,推荐网页设计案例。
Handy Test
redstamp.ca
The Trip
WebKnit
I Shot Him
Mode87
Studio 1 Architects
梦想天空(jizhula.com)关注前端开发技术,展示HTML5和CSS3应用,分享jQuery插件,推荐网页设计案例。
iconmonstr
National Academy Museum
Fat Media
Kalixo
Ciroc Mixology
通常我们在加载iframe,或者ajax请求的时候需一个遮罩动画,我们可以这样处理,使用一个绝对定位的div,高度宽度100%,然后append的body中
具体代码可以参考如下
/**
* Author:Zhang Qi
* Create:2013-03-28
* Function:在body中打开遮罩以及关闭
* */
var LoadingUtils = {
Open:function(){
var top= $(this).offset()==undefined?0:$(this).offset().top;
var left= $(this).offset()==undefined?0:$(this).offset().left;
var appender=null;
if($(this).parent().length==0)
{
appender="body";
}else
{
appender=$(this);
}
$("<div class=\"mask\"></div>").css({
display : "block",
width : $(this).outerWidth(),//100%
height : $(this).outerHeight(),//height
top:top,
left:left
}).appendTo(appender);//body
$("<div class=\"mask-msg\"></div>").html("正在处理,请稍候...")
.appendTo(appender).css({
display : "block",
left : ($(this).outerWidth()-153) / 2+left,
top : ($(this).outerHeight()-42) / 2+top,
});
},
Close:function(){
$(".mask").remove();
$(".mask-msg").remove();
}
}样式表
.mask {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
opacity: 0.3;
filter: alpha(opacity=30);
display: none;
background: #eee;
}
.mask-msg {
position: absolute;
padding: 12px 5px 10px 30px;
width: auto;
height: 16px;
border-width: 2px;
border-style: solid;
display: none;
border-color: #ddd;
font-size:12px;
background: #fff url('/blog_article/loading.gif') no-repeat scroll 5px center;
}
如何调用
1.在DIV ww上显示遮罩
LoadingUtils.Open.call(document.getElementById("ww"));2.遮罩住整个页面
<script type="text/javascript">
$(document).ready(function() {
LoadingUtils.Open.call(this);
});
</script>
扩展=========>IFrame中
window.parent().LoadingUtils.Close();
从子窗中关闭父页的loading动画