I am not sure how you are binding your data table to the view, but here are a couple of suggestions that may be useful. If it is permissable to exclude the row where Column2 is equal to 7, you can use TakeWhile
.
IEnumerable<DataRow> query= dataTable.AsEnumerable().
TakeWhile(r => long.Parse(r["Column2"].ToString()) != 7);
var myDataTable = query.CopyToDataTable();
If you need to include the row where Coulumn2 is equal to a given value, you could wite a method similar to this.
public IEnumerable<DataRow> GetUpTo(Func<long,bool>isFirstOf)
{
foreach(var row in dataTable.AsEnumerable())
{
yield return row;
if (isFirstOf(long.Parse(row["Column2"].ToString()))) break;
}
}
You can call it like this
var redactedDataTable = GetUpTo(x=>x==7).CopyToDataTable();