ASP.net C#来自response.write()的文本没有显示为我想要的

时间:2013-08-31 09:18:31

标签: c# jquery html asp.net css

ASP.net C#我正在使用Jquery新闻自动收录器,其中我从我的数据库中获取动态值。我已将db中的值从newsticker列表的`<OL>中获取。现在,问题是,我无法将其嵌入我的网页中的正确位置。我有一个div div id="newsticker",其中应显示所有数据,但我在news_ticker()类中从db检索的值不会显示在该div中。它们显示在页面顶部。

这是我的代码,

.cs文件:

protected void news_ticker()
{

    SqlConnection connection = ConnectionManager.getConnection();
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = connection;

    cmd.CommandText = ("SELECT [job_title] FROM [job_post]");
    SqlDataAdapter da = new SqlDataAdapter();
    DataTable dt = new DataTable();
    da = new SqlDataAdapter(cmd);
    dt.Clear();
    da.Fill(dt);

    Response.Write("<ol id='sample' class='ticker'>");

    for (int i = 0; i < dt.Rows.Count - 1; i++)
    {

        Response.Write("<li><a href='#' class='read'>Read more</a>" + (dt.Rows[i][0]) + "</li>");

    }
    Response.Write("</ol>");


    connection.Close();

}

.aspx文件:

  <div id="newsticker">

<div class="pull-left">Latest News   <img src="../images/rss1.png" alt="rss" width="15" height="15" /> |</div>

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        SelectCommand="SELECT [job_title] FROM [job_post]"></asp:SqlDataSource>
    <br />    
  </div>

.css文件:

    .ticker {
margin: 0;
padding: 5px;
list-style-type: none;
/*border: 1px solid #ccc;*/
color:#F9A813;
       }
      .ticker li {
    line-height:1.5;
}

.ticker-active li {
    display:none;
    overflow:hidden;
    white-space:nowrap;
}
    .read{
float: right;
   }

   .pull-left{
float:left;
/*border-right: 1px solid #000000;*/
padding:8px;
color:#FFF;
    }



     #newsticker {
position: absolute;
left: 11px;
top: 400px;
width: 700px;
height: 39px;
z-index: 16;
visibility: visible;
    }

P.S。请注意,我在<ol>,中使用简单的虚拟值尝试了此代码,并且它们在newsticker div中完美显示。但是当我使用数据库中的动态值时,它们不会显示在newsticker div中。我无法弄清楚我错过了什么?我尝试过很多东西,但现在我很茫然。善意帮忙?

P.p.s。我没有在这里包含jscript文件,因为它似乎工作正常。

1 个答案:

答案 0 :(得分:2)

你不能在你的情况下使用response.write,你需要在这样的ASPX中有一个转发器控件

<asp:Repeater ID="JobsRepeater" runat="server">
    <HeaderTemplate>
        <ol id='sample' class='ticker'>
    </HeaderTemplate>
    <ItemTemplate>
        <li><a href='#' class='read'>Read more</a> <%#Eval("job_title")%> </li>
    </ItemTemplate>
    <FooterTemplate>
        </ol>
    </FooterTemplate>
</asp:Repeater>

然后在Code中将数据表绑定为转发器的数据源

JobsRepeater.DataSource= dt;
JobsRepeater.DataBind();