2013-05-30 108 views
1

我正在处理一个asp项目,并且我想要将数据库(Sql server)中的值逐个显示到选取框标签中。经过一番搜索,我可以做出下面的代码。带有选取框和标签的asp.net转发器标签

<asp:Repeater id="newsrepeater" runat="server"> 
<ItemTemplate> 
<asp:Label ID="labelnews" text='<%# Container.DataItem %>' runat="server">    
</asp:Label> 
</ItemTemplate> 
</asp:Repeater> 

该代码的作品,唯一的问题是从列表中的值显示在一起。例如,如果有新闻1和新闻2,那么显示新闻1新闻2,而我想要一个接一个地显示新闻1和新闻2。他们会重复。任何建议请。

+0

你为什么不添加一个''
?或' '? – nmat

+0

谢谢你回答,但我不想要两个新闻之间的空间,即新闻1新闻2,而是我想要一个接一个地显示新闻。首先在news1结尾处显示news1,然后显示news2并重复此过程。 – greatmajestics

+1

您是否试图一次只显示一个并循环浏览它们?如果是这样的话,我不会使用中继器 - 我会设置更新面板和定时器。当计时器滴答时,您可以让它显示数据源列表中的下一个项目。你也可以通过让你的中继器告诉Jquery/Javascript潜在的项目并让Jquery遍历它们来完成这个“循环”。 – Porschiey

回答

0

例如:

<div id="Hot_News" > 
      <marquee behavior="scroll" direction="up" scrollamount="2" behavior="alternate" onmouseover="this.setAttribute('scrollamount', 0, 0);" onmouseout="this.setAttribute('scrollamount', 6, 0);"> 
      <asp:Repeater ID="rep_marq" runat="server" >      
       <ItemTemplate> 
        <ul class="marquee"> 
         <li class="marquee_li"> 
          <a href='<%# Eval("NewsID","../Public_Pages/ShowNewsPage.aspx?NID={0}") %>'> 
           <asp:Label ID="Label3" runat="server" Text='<%#Eval("NewsTitr") %>'></asp:Label> 
          </a> 
         </li> 
        </ul> 
       </ItemTemplate> 
      </asp:Repeater> 
      </marquee>     
     </div> 

并在后面的代码:

public void fillrepeter() 
{ 
    try 
    { 
     var db = new DataClassesDataContext(); 
     var fill = (db.TblNews.Select(p => p)).Take(5).ToList(); 
     if (fill != null) 
     { 
      rep_marq.DataSource = fill; 
      rep_marq.DataBind(); 
     } 
    } 
    catch (Exception) 
    { 

     throw; 
    } 
}