asp.net c#marquee用sql,innertext不使用新行

时间:2013-04-08 08:29:16

标签: c# asp.net html sql-server-2008 marquee

我是编程领域的新手......所以请给出正确答案。

我正在使用带有sql数据库的动态选取框来获取“公司新闻”,代码运行正常,但是没有为新点创建新行。

html代码:

<asp:Panel ID="Panel1" runat="server" CssClass="style42" Width="762px" 
    BorderStyle="Solid" Font-Bold="True" Font-Size="Medium" BackColor="#78BBE6" 
    Height="267px">
    <div style="width: 762px; " class="style41">
       <marquee id="mar1" runat="server" direction="up" onmouseover="this.stop()" 
                onmouseout="this.start()" scrollamount="2" scrolldelay="1" 
                class="style43" >
            <strong>
            </strong>
       </marquee>   
    </div>
</asp:Panel>

c#代码: -

protected void Page_Load(object sender, EventArgs e)
{
    SqlConnection obj = new SqlConnection("data source=DHAVAL-PC;"+
                       "initial catalog=user_master;"+
                       "integrated security=true;user id=sa;password=1234");
    string login1 = "select * from admin_data";
    SqlCommand cmd1 = new SqlCommand(login1,obj);
    obj.Open();
    SqlDataReader user = cmd1.ExecuteReader();
    if (user.HasRows)
    {
        user.Read();
        SqlDataReader t1;
        user.Close();
        t1 = cmd1.ExecuteReader();
        t1.Read();               
        this.mar1.InnerHtml= t1[6].ToString();  
           //what to do for newpoint in newline                             
        obj.Close();
     }
 }

在我的数据库中只有一个用于输入新闻内容的字段... 当使用文本框显示新闻时它工作得很好..在新行中显示新点..但是字幕不像文本框那样显示。

请给我适当的建议.....

2 个答案:

答案 0 :(得分:2)

在文本框中输入换行符会在C#中生成换行符(\n)。 HTML会忽略换行符,要在HTML中强制换行,您必须使用<br />标记:

this.mar1.InnerHtml= t1[6].ToString().Replace("\n", "<br />");

答案 1 :(得分:0)

您需要更改此行

 this.mar1.InnerHtml= t1[6].ToString();  
       //what to do for newpoint in newline     

 this.mar1.InnerHtml+= t1[6].ToString()+"<br/>";  
       //what to do for newpoint in newline     

或者您在单个记录中有新行字符,那么您应该这样做

this.mar1.InnerHtml+= t1[6].ToString().Replace("\n", "<br />");