基于Asp.net和JQquery的课件下载系统
赵震奇
(无锡机电高等职业技术 江苏 无锡 214028)
摘要:基于Internet的课件下载系统使用Asp.net开发 , 采用B/S模式,实现对大文件的上传和下载。该系统通过后台对课件资源的维护,利用C#的ADO.NET课件资源的详细信息保存在SQL Server 2000数据库中,用户在前台可以浏览这些信息,在登录后能下载课件资源。
关键字:C#语言,JQuery,Gridview分页查询
1 引言
随着网络技术的广泛应用,课件下载平台也越来越丰富,成为老师的备课助手。然而,由于中小学的课程标准的统一性,这些课件下载平台大多数是面向中小学教师的。随着课改的深入开展,在制定了统一的课程标准,职业教育方面的课件下载平台也就有了迫切性。该课件下载系统属于某个国家级课题的子课题的一部分。[1]
2 JQuery概述
随着WEB2.0及Ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype、YUI、JQuery、mootools、Bindows以及国内的JSVM框架等,通过将这些JS框架应用到我们的项目中能够使程序员从设计和书写繁杂的JS应用中解脱出来,将关注点转向功能需求而非实现细节上,从而提高项目的开发速度。
JQuery是继prototype之后的又一个优秀的JavaScript框架。它是由 John Resign 于 2006 年初创建的,它有助于简化 JavaScript(tm) 以及Ajax 编程。有人使用这样的一个比喻来比较prototype和JQuery:prototype就像Java,而JQuery就像ruby. 它是一个简洁快速灵活的JavaScript框架,它能让你在你的网页上简单的操作文档、处理事件、实现特效并为Web页面添加Ajax交互。[2]
它具有如下一些特点:
1、代码简练、语义易懂、学习快速、文档丰富。
2、JQuery是一个轻量级的脚本,其代码非常小巧,最新版的JavaScript包只有20K左右。
3、JQuery支持CSS1-CSS3,以及基本的xPath。
4、JQuery是跨浏览器的,它支持的浏览器包括IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+。
5、可以很容易的为JQuery扩展其他功能。
6、能将JS代码和HTML代码完全分离,便于代码和维护和修改。
7、插件丰富,除了JQuery本身带有的一些特效外,可以通过插件实现更多功能,如表单验证、tab导航、拖放效果、表格排序、Data Grid,树形菜单、图像特效以及Ajax上传等。
JQuery的设计会改变你写JavaScript代码的方式,降低你学习使用JS操作网页的复杂度,提高网页JS开发效率,无论对于js初学者还是资深专家,JQuery都将是您的首选。
JQuery适合于设计师、开发者以及那些还好者,同样适合用于商业开发,可以说JQuery适合任何JavaScript应用的地方,可用于不同的Web应用程序中。
3 系统分析
(1) 功能结构
系统采用ASP.NET(C#)和JQuery相结合,将高职校各门课程的课件讲义、电子教案、参考资料、试卷习题等十六种分类自动分类,并存放在服务器中,同时将每个上传的课件的相关信息记录到数据库服务上,包括课件名称、运行环境、资料类别、添加时间、更新时间、文件大小、课件格式、上传会员、审核状态、审核评语、推荐等级、下载地址、适用专业、适用年级、下载次数、点击次数等。
系统前台(首页):用户登录、站内统计、课件搜索、友情链接、精品课程、分类。
二级网页:热门课件讲义下载、课件讲义中心。
三级网页:课件的详细信息,包括课件名称、运行环境、资料类别、添加时间、更新时间、文件大小、课件格式、上传会员、审核状态、审核评语、推荐等级、下载地址、适用专业、适用年级、下载次数、点击次数。[3]
系统后台:后台登录、系统配置、修改密码、系统维护等。如图1所示。
图1 系统后台管理界面
(2) 数据库结构
采用SQL SERVER 2000,建立名称为"CourseWareDownLoadSystem"的数据库,包括课件信息表(coursesInfo)、用户信息表(userInfo)、课程信息表(KCInfo)、类型信息表(typeInfo)、等级信息表(rankInfo)、专业信息表(professionInfo)、年级信息表(gradeInfo)、公告信息表(boardInfo)、投票信息表(noteInfo)等。如图2所示。
图2 数据库中主要的表及相互关系
(3) 特点
1、登录后才能下载和统计下载次数
判断Session["LoginUserID"]是否存在,如果不存在则显示"请先登录或注册",如果存在则显示问候语,同时提供本地下载地址,为了防止用户用课件地址直接下载,此地址的格式应为"Download.aspx?ID=XXX",由Download.aspx根据ID的值找到数据库的真实下载地址,然后以字符流的形式下载文件,同时在数据库在更新此课件的下载次数,并将此次下载情况存在下载表中,以便于该用户再次下载时不会重复扣分。实现效果因为用了JQuery技术,界面比较美观,如图3~图5所示。
图3 未登录状态 图4 登录窗口 图5 登录后状态
2、TreeView动态目录树的创建
编写一个名称为InitTree的方法,首先建立根结点,循环读取课程名称表,建立相应"课程名结点",然后读取类型表,在前一结点上建立"类型子结点"。如图所示。
源代码如下:
private void InitTree() //根结点加载函数
{
TreeView1.Nodes.Clear(); //TV为TreeView控件
TreeNode T_root = new TreeNode();
T_root.Text = "课程管理系统";
T_root.ImageUrl = "images/base.gif";
T_root.SelectAction = TreeNodeSelectAction.None; //在选定节点时不引发任何事件
TreeView1.Nodes.Add(T_root);
dvKC = DBFun.GetDataView("select * from KCInfo");
dvType = DBFun.GetDataView("select * from typeInfo");
foreach (DataRowView drv in dvKC) //遍历所有课程
{
TreeNode Fst = new TreeNode();
Fst.Text = drv["kcName"].ToString();
Fst.ImageUrl = "images/ico_jingpin.gif";
Fst.SelectAction = TreeNodeSelectAction.Expand;// 切换节点的展开和折叠状态。
T_root.ChildNodes.Add(Fst);
foreach (DataRowView drv2 in dvType) //遍历所有类型
{
TreeNode Fst2 = new TreeNode();
Fst2.Text = drv2["typeName"].ToString();
Fst2.ImageUrl = "images/file.gif";
Fst2.NavigateUrl = "~/Admin/Manage.aspx?kcid=" + drv["ID"].ToString() + "&typeid=" + drv2["ID"].ToString();
Fst2.Target = "main";
Fst.ChildNodes.Add(Fst2);
}
}
}
实现效果如图6所示。
图6 后台主界面左侧的动态目录树
3、Gridview分页查询
ViewState是ASP.NET中用来保存WEB控件回传时状态值一种机制,即当ASP .NET中的表单被提交时,表单会随所有表单值一同重新出现。利用此原理,就可以在回传时将查询数据状态保存在一个变量中。Gridview查询分页后数据不一致的问题就得以解决。具体实现步骤:
(1)加载时"动态绑定"方法,将SqlDataSource类型的"SqlDa
上一篇:
基于ASPnet_的企事业通用网络OA系统的
下一篇:
马原:环境保护与可持续发展论文(word)