Почему бы вам не выполнить фильтрацию перед привязкой?
например,
gvTenantList.DataSource = data.Where(a=> !hsPastDueLeases.Contains(a.LeaseID)); // Of course you have a datatable so this is not 100% as easy as this
Или вы можете установить строку невидимой, используя
e.Row.Visible = false;
protected void gvTenantList_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (null != e.Row.DataItem)
{
DataRowView rowView = (DataRowView)e.Row.DataItem;
if (hsPastDueLeases.Contains((int)rowView["LeaseID"]))
{
e.Row.CssClass += " pinkbg";
e.Row.Visible = !showCurrentOnly;
}
else if (showPastDueOnly){ //code to prevent showing this row
e.Row.Visible = false;
}
}
}
В качестве альтернативы вы можете добавить CssClass, называемый «скрытым», и в css есть
.hidden { display: none; }
Но, по большей части, я думаю, что вам следует только связать данные, что вы действительно хотите, и оставить бизнес-логику, подобную этой, внеобязательные события.