1

我需要从数据库中获取前 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 表达式?

更新:我在我的问题中写了一个拼写错误,写的是gridview而不是datalist。

update2:我可以通过将 <%#Container.DataItem %> 放入 datalist 来制作一组有限的单词并将其绑定到 datalist,但我不能使用 linqdatasource 等其他数据源来使用 eval 来显示其他数据字段,因为我使用了 datalist1。数据源 = 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();

我感谢任何指导和帮助

4

1 回答 1

1

您可以通过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-08T16:46:05.560 回答