我对 ASP.Net 的了解较少。目前,我正在使用 DataGrid 控件 ASP.Net 并成功映射了 UI 中的所有源信息。
myDataGrid.DataSource = MyCollectionOfObjects
myDataGrid.DataKeyField = "MyKey"
myDataGrid.DataBind()
现在,问题是,我不希望所有对象都映射到网格中。在映射之前需要做一些条件过滤。DataGrid 中是否有任何功能允许我决定绑定或不绑定某些对象?
1(一种选择是通过应用所需的过滤将集合(MyCollectionOfObjects(映射到仅包含所需对象的新集合,但目前我并不期望如此。
例如
foreach(var item in MyCollectionOfObjects)
{
if(item.InvalidEntry)
{
// This entry is not needed
}
else
{
// Okay with this entry
}
}
你可以做这样的事情。根据 InvalidEntry
的值显示/隐藏占位符。
<asp:TemplateColumn>
<ItemTemplate>
<asp:PlaceHolder ID="PlaceHolder2" Visible='<%# Convert.ToBoolean(Eval("InvalidEntry")) %>' runat="server">
<%# Eval("Column1") %>
</asp:PlaceHolder>
</ItemTemplate>
</asp:TemplateColumn>
但是,使用 Linq 筛选源数据会容易得多。
myDataGrid.DataSource = MyCollectionOfObjects.Where(x => x.InvalidEntry == false);