none
marquee的显示问题? RRS feed

  • 问题

  • (一)
     <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控件来显示数据的时候,显示的内容是所有的一起显示了,而不是一条一条的显示,请问这有什么好的解决办法吗?
    2009年12月22日 12:53

答案

  • 要达到100%一致的效果,请使用ListView控件或者Repeater
     <asp:Repeater ID="Content" runat="server">
     <ItemTemplate>
      ◎ <a href=''><%#Eval("学生姓名")%></a>
     </ItemTemplate>
     </asp:Repeater>
    【孟子E章】
    2009年12月22日 13:29
    版主

全部回复

  • 这不难吧,你生成的结果在一行上就可以了
    【孟子E章】
    2009年12月22日 12:55
    版主
  • 是一行以上的啊,比如说我有3条数据,(二)显示的效果是3条数据一起从左向右移,而我想要的效果是一条数据,一条数据的从左往右移动。
    2009年12月22日 12:58
  • <%@ 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章】
    2009年12月22日 13:01
    版主
  • 我用这个◎<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>
    所以效果不同了,我想问一下我那个该怎么改啊,谢谢

    2009年12月22日 13:20
  • 要达到100%一致的效果,请使用ListView控件或者Repeater
     <asp:Repeater ID="Content" runat="server">
     <ItemTemplate>
      ◎ <a href=''><%#Eval("学生姓名")%></a>
     </ItemTemplate>
     </asp:Repeater>
    【孟子E章】
    2009年12月22日 13:29
    版主
  • 要达到100%一致的效果,请使用ListView控件或者Repeater
     <asp:Repeater ID="Content" runat="server">
     <ItemTemplate>
      ◎ <a href=''><%#Eval("学生姓名")%></a>
     </ItemTemplate>
     </asp:Repeater>
    【孟子E章】
    你误会我的意思了,我贴上面的代码是想说我那个代码生成了table,marquee标签把整个table当做一条数据来显示了,所以不是我想要的效果。
    不过用repeater控件解决了这个问题,还是谢谢,还想说一下
    你给我的那个代码marquee标签中没有加上 runat="server",该标签中的datalist控件在后台是读不出来的吧。
    2009年12月22日 13:38
  • marquee标签放在repeater控件头模板 marquee标签结束放在脚本模板 就可以了
    2009年12月22日 13:49
  • 在marquee标签中放repeater控件也是可以的,只是我刚开始用datalist,它把datalist转换成html时变成了table了,而repeater变成了span标签。
    2009年12月22日 14:01
  • 在marquee标签中放repeater控件也是可以的,只是我刚开始用datalist,它把datalist转换成html时变成了table了,而repeater变成了span标签。

    datalist控件是表格table控制布局的 repeater是没有生成代码 自己控制布局生成的
    2009年12月22日 14:09
  • 知道了,谢了。
    2009年12月22日 14:16
  • 好像也不一定的吧,上面孟宪会的那个例子生成的就不是表格。
     <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>

    2009年12月23日 10:45
  • 如果该属性设置为 RepeatLayout.Flow,则不以表结构的形式显示列表项。
    2009年12月23日 11:46
  • 呵呵,谢谢。
    2009年12月26日 10:53