ASP.Net 数据网格有选择地绑定条目



我对 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);

最新更新