积极答复者
marquee的显示问题?

问题
-
(一)<marquee id="info" onmouseover="info.stop()" onmouseout="info.start()" width="100%"scrollamount="2" scrolldelay="10" border="0">滚动信息:·<A class=green12 href="./xwzx/zhxw/200912/t20091208_2705865.html" target=_blank>我中心江桂斌研究员、曲久辉研究员分别当选为中国科学院院士和中国工程院院士</A>·<A class=green12 href="./gjjl/hzjl/200911/t20091124_2674657.html" target=_blank>吕永龙研究员继任国际环境问题科学委员会主席</A>·<A class=green12 href="./yjsjy/yjsjydt/200910/t20091028_2637879.html" target=_blank>中心博士毕业生於俊杰学位论文被评为2009年全国优秀博士学位论文</A>·<A class=green12 href="./xwzx/zhxw/200909/t20090927_2527073.html" target=_blank>李志刚秘书长一行到生态中心检查调研安全保卫保密工作</A>·<A class=green12 href="./xwzx/zhxw/200909/t20090918_2510522.html" target=_blank>丁仲礼副院长亲切看望生态中心离休老专家刘静宜先生</A>·<A class=green12 href="./xwzx/zhxw/200909/t20090909_2470200.html" target=_blank>献给2009年教师节</A>·<A class=green12 href="./gjjl/gjhy/200909/t20090902_2461755.html" target=_blank>第29届国际二恶英大会在京召开</A>·<A class=green12 href="./gdxw/200907/t20090709_2051741.html" target=_blank>吕永龙当选国际环境问题科学委员会第一副主席</A></marquee>(二)<marquee id="info" onmouseover="info.stop()" onmouseout="info.start()" width="100%"scrollamount="2" scrolldelay="10" border="0" runat="server""><asp:DataList ID="DataList1" runat="server"><ItemTemplate>◎<a href="ShowNewsDetail.aspx?NewsID=<%# DataBinder.Eval(Container.DataItem,"ID") %>"target="_blank"><asp:Label ID="Art" Text='<%# DataBinder.Eval(Container.DataItem,"Title") %>' runat="server" ></asp:Label></a></ItemTemplate></asp:DataList></marquee>我想问一下我想实现的效果是像(一)那样的效果,就是一条一条显示,可我用在(二)有datalist控件来显示数据的时候,显示的内容是所有的一起显示了,而不是一条一条的显示,请问这有什么好的解决办法吗?
答案
全部回复
-
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> // 计算数据,完全可以从数据看取得 System.Data.DataView CreateDataSourceByXianhuiMeng() { System.Data.DataTable dt = new System.Data.DataTable(); System.Data.DataRow dr; dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal))); dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal))); dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal))); dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal))); for (int i = 0; i < 8; i++) { System.Random rd = new System.Random(Environment.TickCount * i); ; dr = dt.NewRow(); dr[0] = i * i; dr[1] = "【孟子E章】" + i.ToString(); dr[2] = System.Math.Round(rd.NextDouble() * 100, 2); dr[3] = System.Math.Round(rd.NextDouble() * 100, 2); dr[4] = System.Math.Round(rd.NextDouble() * 100, 2); dr[5] = System.Math.Round(rd.NextDouble() * 100, 2); dt.Rows.Add(dr); } System.Data.DataView dv = new System.Data.DataView(dt); return dv; } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Content.DataSource = CreateDataSourceByXianhuiMeng(); Content.DataBind(); } } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> </head> <body> <form id="form1" runat="server"> <marquee id="info" onmouseover="info.stop()" onmouseout="info.start()" width="100%" scrollamount="2" scrolldelay="10" border="0"> <asp:DataList ID="Content" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow"> <ItemTemplate> <%#Eval("学生姓名")%> </ItemTemplate> </asp:DataList> </marquee> </form> </body> </html>
【孟子E章】 -
我用这个◎<a href="ShowNewsDetail.aspx?NewsID=<%# Eval("ID") %>"target="_blank"><asp:Label ID="Art" Text='<%#Eval("Title") %>' runat="server" ></asp:Label></a>来显示数据生成的代码:
<table id="DataList1" cellspacing="0" border="0" style="border-collapse:collapse;"><tr><td>◎<a href="ShowNewsDetail.aspx?NewsID=20"target="_blank"><span id="DataList1_ctl00_Art">中国</span></a></td></tr><tr><td>◎<a href="ShowNewsDetail.aspx?NewsID=18"target="_blank"><span id="DataList1_ctl01_Art">中国团队</span></a></td></tr><tr><td>◎<a href="ShowNewsDetail.aspx?NewsID=19"target="_blank"><span id="DataList1_ctl02_Art">中国</span></a></td></tr><tr><td>◎<a href="ShowNewsDetail.aspx?NewsID=17"target="_blank"><span id="DataList1_ctl03_Art">中国团队参与研发</span></a></td></tr><tr><td>◎<a href="ShowNewsDetail.aspx?NewsID=16"target="_blank"><span id="DataList1_ctl04_Art">操作系统将首度正式向外界展露真容</span></a></td></tr><tr><td>◎<a href="ShowNewsDetail.aspx?NewsID=15"target="_blank"><span id="DataList1_ctl05_Art">谷歌将于本周发布Chrome OS操作系统</span></a></td></tr><tr><td>◎<a href="ShowNewsDetail.aspx?NewsID=14"target="_blank"><span id="DataList1_ctl06_Art">中美碳捕集与封存国际研讨会在北大举行</span></a></td></tr><tr><td>◎<a href="ShowNewsDetail.aspx?NewsID=13"target="_blank"><span id="DataList1_ctl07_Art">国际太阳能技术科学院落户中国太阳谷德州</span></a></td></tr></table>而你那个生成的代码是:<span id="Content"><span>【孟子E章】0</span><span>【孟子E章】1</span><span>【孟子E章】2</span><span>【孟子E章】3</span><span>【孟子E章】4</span><span>【孟子E章】5</span><span>【孟子E章】6</span><span>【孟子E章】7</span></span>所以效果不同了,我想问一下我那个该怎么改啊,谢谢 -
要达到100%一致的效果,请使用ListView控件或者Repeater
你误会我的意思了,我贴上面的代码是想说我那个代码生成了table,marquee标签把整个table当做一条数据来显示了,所以不是我想要的效果。
<asp:Repeater ID="Content" runat="server">
<ItemTemplate>
◎ <a href=''><%#Eval("学生姓名")%></a>
</ItemTemplate>
</asp:Repeater>
【孟子E章】不过用repeater控件解决了这个问题,还是谢谢,还想说一下你给我的那个代码marquee标签中没有加上 runat="server",该标签中的datalist控件在后台是读不出来的吧。- 已标记为答案 xiaowangxiaowang 2009年12月22日 14:03
- 取消答案标记 孟宪会Moderator 2009年12月23日 0:42
-
好像也不一定的吧,上面孟宪会的那个例子生成的就不是表格。
<asp:DataList ID="Content" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow"> <ItemTemplate> <%#Eval("学生姓名")%> </ItemTemplate> </asp:DataList>
生成的是
<span id="Content"><span>【孟子E章】0</span><span>【孟子E章】1</span><span>【孟子E章】2</span><span>【孟子E章】3</span><span>【孟子E章】4</span><span>【孟子E章】5</span><span>【孟子E章】6</span><span>【孟子E章】7</span></span>