gpt4 book ai didi

c# - 在使用 c# 绑定(bind)到 .net 中的 gridview 之前从类数组中过滤数据

转载 作者:行者123 更新时间:2023-11-30 17:09:01 25 4
gpt4 key购买 nike

我有一个带有数组列表的 ICollection 类 LabCollection。此数组列表包含另一个类 LabEntity。LabEntity 具有属性 LabID、LabName 等

我正在将 icollection 类绑定(bind)到 gridview

LabCollection objLabCollection=new LabCollection();

gridview.datasource=objlabCollection
gridview.databind();

在绑定(bind)到具有特定 LabName 的网格之前,我必须填充类。我试试这个

BindingSource bs = new BindingSource();
bs.DataSource=objlabCollection
bs.Filter = "LabName='CPT'";

gridview.DataSource = bs;
gridview.DataBind();

如何实现?

最佳答案

您有两个类 LabCollectionLabEntityLabCollection 现在包含一个 ArrayList

更好的方法是像这样更改 LabCollection 类。 (我宁愿将其命名为 LabCollectionManager )

public class LabCollectionManager()
{

//.................

public List<LabEntity> GetAllLabEntities()
{
//method that generates a generic list of LabEntity
}

public List<LabEntity> GetLabEntitiesByLabName(string labName)
{
return GetAllLabEntities().Where(le => le.LabName == labName).ToList();
}

//.................

}

现在像这样在代码隐藏中调用它

var labManager = new LabCollectionManager();
gridview.DataSource = labManager.GetLabEntitiesByLabName("CPT");
gridview.DataBind();

更新:

如果你想坚持使用 ArrayList,像这样改变你的函数

public class LabCollectionManager()
{

//.................

public ArrayList GetAllLabEntities()
{
//method that generates a generic list of LabEntity
}

public ArrayList GetLabEntitiesByLabName(string labName)
{
var completeList = GetAllLabEntities();
var filteredList = new ArrayList(completeList.Cast<LabEntity>()
.Where(le => le.LabName == labName)
ToList());
return filteredList;
}

//.................

}

P.S:不是很优化,但这将帮助您入门。

关于c# - 在使用 c# 绑定(bind)到 .net 中的 gridview 之前从类数组中过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13337799/

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