В коде, вы являетесь обязательными для контроллера ретранслятора с DataTable, а затем делаете запрос ExecuteReader и перекручивание через результирующий набор снова. Это не нужно. Вам нужно либо одно из них. Либо привязка данных через DataTable, либо Datareader.
Так что ваш код может быть изменен, как этот
using(SqlConnection con = new SqlConnection(ConString))
{
SqlCommand cmd = new SqlCommand("select top 10 Text from News_Feed", con);
SqlDataReader reader = cmd.ExecuteReader();
Repeater1.DataSource = reader;
Repeater1.DataBind();
}
и в разметке
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:Label ID="myLabel" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Text")%>' />
</ItemTemplate>
</asp:Repeater>
Это должно работать. Он протестирован.
В вашем вопросе не отображается код jQuery. В основном вышеприведенный код загрузит 10 лучших записей в таблице, когда ваша страница загружается. Возможно, вам потребуется обновить запрос с помощью предложения order, чтобы получить правильные данные.
Если вы действительно хотите, чтобы какой-то динамически обновляемый тикер новостей (без перезагрузки страницы), вы должны использовать jQuery для этого. Сначала загружайте контент, а затем используя функцию javascript setInterval, выполняйте вызов ajax за каждые n секунд и перезагружайте тикер новостей данными, полученными от вызова ajax.
Вот простой, но рабочий пример для динамического загрузки контента с помощью jQuery ajax.
Есть DIV на странице, чтобы показать данные
<div id="divNews"></div>
Добавьте ниже скрипт на страницу
<script type="text/javascript">
$(function() {
function GetNewsItems() {
$("#divNews").load("newsfeed.ashx");
}
setInterval(function() { GetNewsItems() }, 5000);
});
</script>
Так вышеописанный скрипт использует setInterval функцию для выполнения GetNewsITems функции для загрузки данные каждые 5 секунд. Он вызывает файл с именем newsfeed.ashx для данных . Создайте общий обработчик caleld newsfeed.ashx и замените код в методе ProcessRequest ниже:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
StringBuilder str = new StringBuilder();
str.Append("<ul>");
using (SqlConnection con = new SqlConnection(ConString))
{
SqlCommand cmd = new SqlCommand("select Text from News_Feed ORDER BY ID DESC", con);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
str.Append("<li>"+reader.GetString(0)+"</li>");
}
}
str.Append("</ul>");
context.Response.Write(str.ToString());
}
Общий обработчик вернет разметку элемента UL с 10 элементами из таблицы. мы загружаем это содержимое в div, используя метод загрузки jQuery.
Ну, я тоже это пробовал. Затем я все 10 строк вместе, как 1 ряд. –
Я думаю, этот комментарий для моего ответа. Это должно быть исправлено с некоторым стилем CSS. – Shyju