ASP.NET+Ajax+Javascript实现页面定次刷新滚动内容
2010-01-07 16:02
916 查看
一、概述
Marquee:Html中滚屏控件,可以使包含在此标记中的内容进行各个方向,各种速度的滚动,因此在不考虑使用第三方控件的前提下,考虑使用Marquee+xmlhttp来实现定次更新页面中的滚动内容,此实现在IE6.0及以上版本测试通过,其他浏览器暂时未测试过。
Marquee中的onfinish事件:在给Marquee属性loop赋值后,完成这些次数时,会调用onfinish事件。
二、功能及特点
1、Javascript通过Microsoft的MSXML对象,动态获取后台数据库数据;
2、Javascript解析MSXML对象中的xml内容,整理为html后,显示给用户;
3、通过配置文件Config.xml中的参数,可以修改Marquee的滚动速度、每笔数据的滚动次数、延时、Marquee的高度、滚动方向、鼠标悬停是否定制滚动等。
三、前台Html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmClearance.aspx.cs" Inherits="DynamicShow_FrmClearance" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>定次滚动示例</title>
<link href="../DynamicShow/Css/StyleSheet.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" language="javascript" src="marquee.js"></script>
</head>
<body>
<form id="FrmClearance" runat="server">
<table id="BodyStyle" border="0px" width="100%">
<tr>
<td style="text-align: center; vertical-align: middle; font-family: 楷体_GB2312; font-size: 35px;
color: #0A246A; font-weight: bold; height: 160px">
<img src="./Image/CustomLog.jpg" /><br />
定 次 滚 动 示 例<br />
</td>
</tr>
<tr>
<td>
<div id="divMarquee" runat="server" style="width: 100%">
</div>
</td>
</tr>
</table>
<script language="javascript" type="text/javascript">
//初始化参数
InitMarqueeParameter("marquee_clearance");
//获取滚动数据
GenerateScrolContent("marquee_clearance");
</script>
</form>
</body>
</html>
四、Config.xml配置文件
<?xml version="1.0" encoding="utf-8" ?>
<marquee>
<marquee_clearance>
<!--marquee滚动速度-->
<marqueeSpeed>3</marqueeSpeed>
<!--marquee滚动次数-->
<scrolTimes>1</scrolTimes>
<!--marquee延时-->
<marqueeDelay>0.5</marqueeDelay>
<!--marquee高度-->
<marqueeHeight>530</marqueeHeight>
<!--marquee滚动方向-->
<marqueeDirect>up</marqueeDirect>
<!--鼠标悬停是否定制滚动-->
<marqueeStop>true</marqueeStop>
</marquee_clearance>
</marquee>
五、Javascript实现
//滚动次数
var scrolTimes=2;
//marquee滚动速度
var marqueeSpeed=5;
//marquee延时
var marqueeDelay = 0.5;
//marquee高度
var marqueeHeight=600;
//marquee滚动方向
var marqueeDirect="up";
//鼠标悬停是否定制滚动
var marqueeStop="true";
/***************初始化参数***************/
function InitMarqueeParameter(marqueeType)
{
try
{
var xmlDoc;
if(window.ActiveXObject)
{
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load("marqueeConfig.xml");
}
if(xmlDoc==null)
{
return;
//alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
}
var node;
//marquee滚动速度
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/marqueeSpeed");
marqueeSpeed = parseInt(node[0].text);
//marquee滚动次数
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/scrolTimes");
scrolTimes = parseInt(node[0].text);
//marquee延时
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/marqueeDelay");
marqueeDelay = parseInt(node[0].text);
//marquee高度
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/marqueeHeight");
marqueeHeight = parseInt(node[0].text);
//marquee滚动方向
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/marqueeDirect");
marqueeDirect = node[0].text;
//鼠标悬停是否定制滚动
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/marqueeStop");
marqueeStop = node[0].text;
}
catch(e)
{
}
}
/***************空值替换函数***************/
function IsNull(oldstring)
{
if(oldstring == "")
return " "
else
return oldstring;
}
/***************更新滚动内容***************/
function GenerateScrolContent(marqueeType)
{
var oXMLDoc = new ActiveXObject('MSXML');
oXMLDoc.url = "HandlerGetScrolContent.ashx?MarqueeType="+marqueeType;
var oRoot=oXMLDoc.Root;
if(oRoot.children == null)
return;
//设置Marquee各个参数
var tablecontent = "<marquee id=/"mqMain/" direction=/""+marqueeDirect+"/" height=/""+marqueeHeight+"/" onfinish=/"GenerateScrolContent('"+marqueeType+"')/" onmouseout=/"this.start()/" loop=/""+scrolTimes+"/""+(marqueeStop == "true" ? "onmouseover=/"this.stop()/"":"")+" scrollamount=/""+marqueeSpeed+"/" scrolldelay=/""+marqueeDelay+"/">";
if(marqueeType == "marquee_clearance")
{
//配置具体滚动内容
tablecontent += "<table cellpadding=/"4/" cellspacing=/"0/" width=/"100%/" class=/"clearance-table/">";
for(var i=0;i<oRoot.children.length;i++)
{
var row=oRoot.children.item(i);
if(i % 2 == 1)
tablecontent += "<tr class=/"clearance-ScrolIntervalTr/">";
else
tablecontent += "<tr class=/"clearance-ScrolNormalTr/">";
tablecontent +="<td nowrap width=/"40%/" class=/"clearance-ScrolTdStyle/">" + IsNull(row.GetAttribute("GATEJOB_NO")) + "</td>";
tablecontent +="<td nowrap width=/"20%/" class=/"clearance-ScrolTdStyle/">" + IsNull(row.GetAttribute("STEP_NAME")) + "</td>";
tablecontent +="<td nowrap width=/"20%/" class=/"clearance-ScrolTdStyle/">" + IsNull(row.GetAttribute("CAR_NO")) + "</td>";
tablecontent +="<td nowrap width=/"20%/" class=/"clearance-ScrolTdStyle/">" + IsNull(row.GetAttribute("CAR_STATUS_NAME")) + "</td>";
tablecontent +="</tr>";
}
tablecontent += "</table>";
}
tablecontent += "</marquee>";
divMarquee.innerHTML=tablecontent;
}
六、样式表
略。
七、后台数据获取
略。
Marquee:Html中滚屏控件,可以使包含在此标记中的内容进行各个方向,各种速度的滚动,因此在不考虑使用第三方控件的前提下,考虑使用Marquee+xmlhttp来实现定次更新页面中的滚动内容,此实现在IE6.0及以上版本测试通过,其他浏览器暂时未测试过。
Marquee中的onfinish事件:在给Marquee属性loop赋值后,完成这些次数时,会调用onfinish事件。
二、功能及特点
1、Javascript通过Microsoft的MSXML对象,动态获取后台数据库数据;
2、Javascript解析MSXML对象中的xml内容,整理为html后,显示给用户;
3、通过配置文件Config.xml中的参数,可以修改Marquee的滚动速度、每笔数据的滚动次数、延时、Marquee的高度、滚动方向、鼠标悬停是否定制滚动等。
三、前台Html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmClearance.aspx.cs" Inherits="DynamicShow_FrmClearance" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>定次滚动示例</title>
<link href="../DynamicShow/Css/StyleSheet.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" language="javascript" src="marquee.js"></script>
</head>
<body>
<form id="FrmClearance" runat="server">
<table id="BodyStyle" border="0px" width="100%">
<tr>
<td style="text-align: center; vertical-align: middle; font-family: 楷体_GB2312; font-size: 35px;
color: #0A246A; font-weight: bold; height: 160px">
<img src="./Image/CustomLog.jpg" /><br />
定 次 滚 动 示 例<br />
</td>
</tr>
<tr>
<td>
<div id="divMarquee" runat="server" style="width: 100%">
</div>
</td>
</tr>
</table>
<script language="javascript" type="text/javascript">
//初始化参数
InitMarqueeParameter("marquee_clearance");
//获取滚动数据
GenerateScrolContent("marquee_clearance");
</script>
</form>
</body>
</html>
四、Config.xml配置文件
<?xml version="1.0" encoding="utf-8" ?>
<marquee>
<marquee_clearance>
<!--marquee滚动速度-->
<marqueeSpeed>3</marqueeSpeed>
<!--marquee滚动次数-->
<scrolTimes>1</scrolTimes>
<!--marquee延时-->
<marqueeDelay>0.5</marqueeDelay>
<!--marquee高度-->
<marqueeHeight>530</marqueeHeight>
<!--marquee滚动方向-->
<marqueeDirect>up</marqueeDirect>
<!--鼠标悬停是否定制滚动-->
<marqueeStop>true</marqueeStop>
</marquee_clearance>
</marquee>
五、Javascript实现
//滚动次数
var scrolTimes=2;
//marquee滚动速度
var marqueeSpeed=5;
//marquee延时
var marqueeDelay = 0.5;
//marquee高度
var marqueeHeight=600;
//marquee滚动方向
var marqueeDirect="up";
//鼠标悬停是否定制滚动
var marqueeStop="true";
/***************初始化参数***************/
function InitMarqueeParameter(marqueeType)
{
try
{
var xmlDoc;
if(window.ActiveXObject)
{
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load("marqueeConfig.xml");
}
if(xmlDoc==null)
{
return;
//alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
}
var node;
//marquee滚动速度
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/marqueeSpeed");
marqueeSpeed = parseInt(node[0].text);
//marquee滚动次数
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/scrolTimes");
scrolTimes = parseInt(node[0].text);
//marquee延时
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/marqueeDelay");
marqueeDelay = parseInt(node[0].text);
//marquee高度
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/marqueeHeight");
marqueeHeight = parseInt(node[0].text);
//marquee滚动方向
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/marqueeDirect");
marqueeDirect = node[0].text;
//鼠标悬停是否定制滚动
node = xmlDoc.getElementsByTagName("marquee/"+marqueeType+"/marqueeStop");
marqueeStop = node[0].text;
}
catch(e)
{
}
}
/***************空值替换函数***************/
function IsNull(oldstring)
{
if(oldstring == "")
return " "
else
return oldstring;
}
/***************更新滚动内容***************/
function GenerateScrolContent(marqueeType)
{
var oXMLDoc = new ActiveXObject('MSXML');
oXMLDoc.url = "HandlerGetScrolContent.ashx?MarqueeType="+marqueeType;
var oRoot=oXMLDoc.Root;
if(oRoot.children == null)
return;
//设置Marquee各个参数
var tablecontent = "<marquee id=/"mqMain/" direction=/""+marqueeDirect+"/" height=/""+marqueeHeight+"/" onfinish=/"GenerateScrolContent('"+marqueeType+"')/" onmouseout=/"this.start()/" loop=/""+scrolTimes+"/""+(marqueeStop == "true" ? "onmouseover=/"this.stop()/"":"")+" scrollamount=/""+marqueeSpeed+"/" scrolldelay=/""+marqueeDelay+"/">";
if(marqueeType == "marquee_clearance")
{
//配置具体滚动内容
tablecontent += "<table cellpadding=/"4/" cellspacing=/"0/" width=/"100%/" class=/"clearance-table/">";
for(var i=0;i<oRoot.children.length;i++)
{
var row=oRoot.children.item(i);
if(i % 2 == 1)
tablecontent += "<tr class=/"clearance-ScrolIntervalTr/">";
else
tablecontent += "<tr class=/"clearance-ScrolNormalTr/">";
tablecontent +="<td nowrap width=/"40%/" class=/"clearance-ScrolTdStyle/">" + IsNull(row.GetAttribute("GATEJOB_NO")) + "</td>";
tablecontent +="<td nowrap width=/"20%/" class=/"clearance-ScrolTdStyle/">" + IsNull(row.GetAttribute("STEP_NAME")) + "</td>";
tablecontent +="<td nowrap width=/"20%/" class=/"clearance-ScrolTdStyle/">" + IsNull(row.GetAttribute("CAR_NO")) + "</td>";
tablecontent +="<td nowrap width=/"20%/" class=/"clearance-ScrolTdStyle/">" + IsNull(row.GetAttribute("CAR_STATUS_NAME")) + "</td>";
tablecontent +="</tr>";
}
tablecontent += "</table>";
}
tablecontent += "</marquee>";
divMarquee.innerHTML=tablecontent;
}
六、样式表
略。
七、后台数据获取
略。
相关文章推荐
- ASP.NET+Ajax+Javascript实现页面div定时刷新
- asp.net使用javascript实现不刷新页面获取当前时间
- [荐]Javascript与asp.net 实现Ajax多文件无刷新上传
- Javascript与asp.net 实现Ajax多文件无刷新上传【转】
- Javascript与asp.net 实现Ajax多文件无刷新上传
- Javascript与asp.net 实现Ajax多文件无刷新上传
- Javascript与asp.net 实现Ajax多文件无刷新上传
- ASP.NET使用ajax实现分页局部刷新页面功能
- Javascript与asp.net 实现Ajax多文件无刷新上传
- ASP.NET之使用Ajax实现页面异步刷新(无需刷新整个页面)
- Javascript与asp.net 实现Ajax多文件无刷新上传(转)
- GridView 72般绝技,Javascript与asp.net 实现Ajax多文件无刷新上传,在ASP.NET中执行URL重写经典方案
- Javascript与asp.net 实现Ajax多文件无刷新上传
- ASP.NET----jquery实现同一页面无刷新层次效果
- 子页面关闭时刷新父页面 javascript + asp.net
- asp.net mvc基于jQuery+Ajax实现无刷新分页
- 【ASP.NET】用JavaScript刷新框架子页面的8种方法
- ASP.NET 2.0中实现无刷新页面
- 先看看ASP.NET页面刷新的实现方法:
- ASP.NET(C#)AJAX+JAVASCRIPT实现类似QQ,MSN窗口之功能(续)