gpt4 book ai didi

c# - 延迟加载转发器有 linq 查询不产生结果

转载 作者:行者123 更新时间:2023-11-29 04:22:25 25 4
gpt4 key购买 nike

所以我懒得加载一个转发器控件:

接下来的代码将转发器绑定(bind)到由 loadGuestbook() 填充的 guestbookData 属性

public partial class _Default
{
private DataTable _guestbookData;
public DataTable guestbookData
{
get
{
if (_guestbookData == null)
{
_guestbookData = loadGuestbook();
}
return _guestbookData;
}
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataBind();
}
}

private DataTable loadGuestbook()
{
netguestData nd = new netguestData();
List<post> data = nd.GetPosts(10, rptGuestbook.Items.Count);

DataTable dt = new DataTable();
// writing the list to a DataTable for bind happens here.
// not sure how to cast IEnumerable to DataTable, else I'd do that

return dt;
}

protected void btnLoadMore_Click(object sender, EventArgs e)
{
DataBind();
}
}

使用 LINQ To SQL 从数据库中查询数据。这是我正在使用的 GetPosts(int, int) 函数:

public class netguestData
{
private netguestEntities ne = new netguestEntities();

public netguestData()
{

}

public List<post> GetPosts(int Take, int Skip)
{
var posts = (from p in ne.posts
.OrderByDescending(p => p.postdate)
.Take(Take)
.Skip(Skip)
select p).ToList();
return posts;
}
}

现在,为了对此进行分页,我基本上是每页加载 10 行,并使用转发器中的项目计数作为引用来确定要跳过的所选数据中的行数。

第一次加载页面时,我毫无问题地获得了最初的 10 条记录,但是当我单击按钮加载下一组时,它变成空白。

调试器中的消息是:

Enumeration yielded no results

我检查了点击后的 TakeSkip 值,两者都是 10,正如预期的那样。表中有 200 多行,所以我无法理解问题所在。

任何人都可以建议我可以做些什么来解决这个问题吗?

提前致谢!

最佳答案

您可能想先跳过,然后再获取。 (先做 take 然后 skip 没有多大意义。)

关于c# - 延迟加载转发器有 linq 查询不产生结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20057563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com