отобразить первые N слов из поля базы данных в DataList

64
7

Мне нужно получить первые n слов из базы данных и отобразить их в DataList. Я использую LINQ to SQL. Я много искал, но не могу найти способ сделать это, я пытаюсь составить список статей с 300 символами из них и ссылку "Подробнее", я смогу обработать кнопку "Читать дальше" и показать страницу статьи, но Я застрял в показе ограниченных слов в списке статей. Я использую DataList, потому что хочу просто отображать в нем другие поля.

Я могу создать массив моего столбца таблицы, у меня есть количество строк:

var arc = (from a in data.Articles select a).Count();
var ar = (from a in data.Articles select a.ArticleText).ToArray();
var article = ar;

и вот как я могу извлечь 5 слов из строки:

string firstWords = Regex.Match(testString, @"^(\w+\b.*?){5}").ToString();

Я не могу заставить это работать вместе

можно ли использовать выражение eval для массивов?

update: Я сделал ошибку опечатки в своем вопросе, написал gridview вместо datalist.

update2: я мог бы создать массив ограниченных слов и связать его с datalist, поставив <% # Container.DataItem%> в datalist, но я не могу использовать другие источники данных, такие как linqdatasource, для использования eval для отображения других полей данных, потому что я использовал datalist1. DataSource = ar.

код:

string[] limitedarticle;
limitedarticle = new string[arc];

for (int i = 0; i < arc; i++)
{

limitedarticle[i] = Regex.Match(article[i], @"^(\w+\b.*?){5}").ToString();

}
datalist1.DataSource = ar ;
datalist1.DataBind();

Я ценю любые рекомендации и помощь

спросил(а) 2013-11-08T19:44:00+04:00 7 лет, 10 месяцев назад
1
Решение
65

Вы можете получить n строк с помощью этого:

var arc = (from a in data.Articles select a).Take(5);

Это даст вам 5 строк. Тогда вы могли бы взять этот результат и привязать данные к GridView.

Чтобы ограничить количество слов из ArticleText, сделайте следующее:

var ar = (from a in data.Articles select a.ArticleText.Take(50));

ответил(а) 2013-11-08T19:46:00+04:00 7 лет, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема