mvc实现动态图片切换.net

本人用的mvc1.0vs2008要求是根据数据库图片的多少来实现一个动态的切换效果,需要绑定图片和一个跳转的链接地址。也就是说,如果数据库有两张图片就显示两张图片切换,图... 本人用的mvc1.0 vs2008
要求是根据数据库图片的多少来实现一个动态的切换效果,需要绑定图片和一个跳转的链接地址。
也就是说,如果数据库有两张图片就显示两张图片切换,图片数量是不定的,数据库有多少就取多少,请问有什么办法?

知道的朋友请把代码发到我的邮箱,并告诉我你的账号,好给你分!
304114718
回一楼的,能不能给个事例?
回二楼的,我说的是mvc框架下的。
展开
 我来答
jeason738
推荐于2016-11-04 · TA获得超过1716个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:274万
展开全部
我是先将图片信息放到了页面的某个隐藏域中,如:
后台在Page_Load的时候先从数据库中取图片:
protected void Page_Load(object sender, EventArgs e)
{
Hidden2.Value = "";
LoginBLL log = new LoginBLL();
DataSet ds = log.GetImage("1");//获取图片信息
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Hidden1.Value += ds.Tables[0].Rows[i]["Image"].ToString() + ","; }
}
}

这是前台页面,由于隐藏域中已经有值,所以我将取出来的值用JS加CSS样式来实现的,能够达到每五秒钟切换一次图片,点击图片,可以浏览到大图。我将取出的图片用“,”进行连接,然后再通过JS拆分后分别赋值创建并赋给对象,以达到动态切换图片的效果。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>

</head>
<body>
<input id="Hidden1" type="hidden" runat="server" />
<script type="text/javascript" language="javascript">
var widths=500; //焦点图片宽
var w=2;
var widthss=widths+w;
var heights=221; //焦点图片高
//var heightss=heightss+w;
//var heightt=32;
//总条数
//img1=new Image();在这里是声明了一个图片元素的对象
//后面是对图像的属性进行赋值或设置,如imgs.src="xxxx.jpg"是指定图片的索引地址.
//这个代码一般用于head区,用于预加载图片,即加快图片显示.
//只有用new Images()得到的图片IE7才认,
//而IE6和firefox可认得imgUrl[1]="/y9q9ms7lbgbt.jpg";得到的图片
var str=document.getElementById('Hidden1').value.split(',');
if(str!="")
{
for(var i=0;i<str.length-1;i++)
{//获取图片的数量,并创建对象
eval('img'+(i+1)+'=new Image();');
eval('img'+(i+1)+'.src="'+str[i]+'";');
eval('url'+(i+1)+'=new Image();');
eval('url'+(i+1)+'.src="'+str[i]+'";');
}
}
var counts=str.length-1;
var nn=1; //当前所显示的滚动图
var key=0; //标识是否为第一次开始执行
var tt; //标识作用

function change_imgbaner()
{
if(key==0){key=1;} //如果第一次执行KEY=1,表示已经执行过一次了。
else if(document.all)//document.all仅IE6/7认识,firefox不会执行此段内容
{
document.getElementById("pic").filters[0].Apply(); //将滤镜应用到对像上
document.getElementById("pic").filters[0].Play(duration=1); //开始转换
document.getElementById("pic").filters[0].SlideStyle='SWAP';//转换效果
document.getElementById("pic").filters[0].Bands=1;
// with(document.getElementById("pic").filters[0])
// { Duration=2;SlideStyle='SWAP';Bands=1; }
}

eval('document.getElementById("pic").src=img'+nn+'.src'); //替换图片
eval('document.getElementById("url").href=url'+nn+'.src'); //替换URL
//eval('document.getElementById("title").value=txt'+nn+'.txt'); //替换ALT

for (var i=1;i<=counts;i++)
{
document.getElementById("xxjdjj"+i).className='axx'; //将下面黑条上的所有链接变为未选中状态
}
document.getElementById("xxjdjj"+nn).className='bxx'; //将当前页面的ID设置为选中状态
nn++;
if(nn>counts){nn=1;} //如果ID大于总图片数量。则从头开始循环
tt=setTimeout('change_imgbaner()',5000); //在4秒后重新执行change_imgbaner()方法.
}
function changeimg(n)//点击黑条上的链接执行的方法。
{
nn=n; //当前页面的ID等于传入的N值,
window.clearInterval(tt); //清除用于循环的TT
//重新执行change_imgbaner();但change_imgbaner()内所调用的图片ID已经在此处被修改,会从新ID处开始执行.
tt=setTimeout('change_imgbaner()',500);
//change_imgbaner();
}

function aHref()
{return;}
//样式表
document.write('<style>');
document.write('.axx{padding:1px 7px;margin:0 5px;}');
document.write('a.axx:link,a.axx:visited{text-decoration:none;color:#000;line-height:12px;font:12px sans-serif;background:#fff;border:1px solid #3467cc}');
document.write('a.axx:active,a.axx:hover{text-decoration:none;color:#fff;line-height:12px;font:12px sans-serif;background:#666;}');
document.write('.bxx{padding:1px 7px;margin:0 5px;}');
document.write('a.bxx:link,a.bxx:visited{text-decoration:none;color:#fff;line-height:14px;font:14px sans-serif;background:#95bdeb;font-weight:900}');
document.write('a.bxx:active,a.bxx:hover{text-decoration:none;color:#fff;line-height:14px;font:14px sans-serif;background:#ff9900;font-weight:900}');
document.write('</style>');
//内容部分
document.write('<div style="width:'+widthss+'px;height:'+heights+'px;overflow:hidden;text-overflow:clip;float:left;">');
document.write('<div><a id="url" target="_blank"><img id="pic" style="border:0px #cbcbcb solid;FILTER: progid:DXImageTransform.Microsoft.Slide(duration=1,slidestyle=SWAP,Bands=1)" width='+widths+' height='+heights+' /></a></div>');
document.write('<div style="background: transparent;width:98%;text-align:right;top:-30px;position:relative;margin:1px;height:32px;border:0px;padding-top:1px;z-index:0;"><div>');
for(var i=1;i<counts+1;i++){document.write('<a href="javascript:aHref();" id="xxjdjj'+i+'" class="axx" target="_self" onmouseover="javascript:changeimg('+i+');">'+i+'</a>');}
document.write('</div></div></div>');
//开始执行滚动操作
change_imgbaner();
-->

</script>
</body>
</html>

PS:MVC框架无非就是通过某个框架结构来获取需要的结果而已,你所要的效果与MVC框架并无直接关系,只是获取图片的集合需要通过MVC的架构关系来读取,通过视图层调用业务层的方法,业务层再通过数据访问层从数据库获取数据,再返回给业务逻辑层,进而再返回给视图层,最终还是由视图层来对返回的结果进行处理显示在页面上,而你需要的不就是视图层来显示图片切换的效果吗?我将从数据库取图片的步骤省略了,我用的也是三层架构,注意:
LoginBLL log = new LoginBLL();
DataSet ds = log.GetImage("1");//获取图片信息

我的这一步就是获取图片信息,调用的是业务逻辑层的某个接口下的方法,因此接口名后面带有BLL,而在我的DataAccess类下,反射创建类的实例,将某些类的模块反射给接口,而真正与数据库交互的就是这些类,而后面的HTML代码则是对你图片进行切换的JS和CSS样式,通过它们来达到想要的效果,所以你所讲的效果与MVC架构并无太大关系。
depluin
2010-06-17 · TA获得超过3179个赞
知道大有可为答主
回答量:3378
采纳率:75%
帮助的人:2486万
展开全部
这跟MVC没关系,用ajax或直接静态实现就行了,从数据库中输出图片的数组和链接为json数组,在前台调用,循环这个数组中的图片并附加连接就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-06-22
展开全部

这个效果跟后台无关的

试试这个图片切换

有12345数字一起切换

鼠标点一下数字会变换到另一张图片,不点就会自动换

里面有教程和源码

参考资料: http://www.blueidea.com/common/shoutbox/redir.asp?2=p&id=10895

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冷库软件
2010-06-19 · TA获得超过889个赞
知道小有建树答主
回答量:1672
采纳率:0%
帮助的人:1213万
展开全部
二楼说的很好,如果还不明白,明天给你封装一个轮子。
lxmtalk#vip.qq.com(#换成@)联系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式