For what it's worth to anyone else, here is how I ended up looping through my filtered grid and copying the filtered rows into a datatable. I know it isn't pretty but it works perfectly:
Private Function getFilteredRows(ByVal formattedBatchId As String) As DataTable
Dim dtRecs As New DataTable
Dim R As DataRow
Dim addRowFlag As Boolean
For Each item As GridItem In rgbt.MasterTableView.Items
Dim lblEmpMsg As Label = CType(item.FindControl("lblEmpMsg"), Label)
Dim empMsgVal As String = lblEmpMsg.Text
Dim lblAmt As Label = CType(item.FindControl("lblExpAmount"), Label)
Dim amtVal As String = Replace(lblAmt.Text, "$", "")
Dim lblSeqNum As Label = CType(item.FindControl("lblSeqNum"), Label)
Dim seqNumVal As String = lblSeqNum.Text
Dim lblJobNum As Label = CType(item.FindControl("lblJobNum"), Label)
Dim jobNumVal As String = lblJobNum.Text
Dim lblPhase As Label = CType(item.FindControl("lblPhase"), Label)
Dim phaseVal As String = lblPhase.Text
Dim lblCategory As Label = CType(item.FindControl("lblCategory"), Label)
Dim categoryVal As String = lblCategory.Text
Dim lblVendor As Label = CType(item.FindControl("lblVendor"), Label)
Dim vendorVal As String = lblVendor.Text
Dim lblWed As Label = CType(item.FindControl("lblCurWkEndDte"), Label)
Dim wedVal As String = lblWed.Text
Dim lblInvoiceNum As Label = CType(item.FindControl("lblInvoiceNum"), Label)
Dim invoiceNumVal As String = lblInvoiceNum.Text
invoiceNumVal = Replace(invoiceNumVal, "BATCH#", "-" & formattedBatchId)
R = dtRecs.NewRow
addRowFlag = False
For Each column As GridColumn In rgbt.Columns
If (column.ColumnType = "GridTemplateColumn") Then
If (column.ColumnGroupName = "fileField") Then
Dim colstring As String = column.UniqueName
If (dtRecs.Columns.Contains(colstring) = False) Then
Dim newcolumn = New DataColumn()
newcolumn.DataType = System.Type.GetType("System.String")
newcolumn.ColumnName = colstring
dtRecs.Columns.Add(newcolumn)
'set the data table column to it's appropriate label value
If (colstring = "TE_SEQUENCE_NO") Then
R(colstring) = seqNumVal
addRowFlag = True
End If
If (colstring = "TE_JOB_NUMBER") Then
R(colstring) = jobNumVal
addRowFlag = True
End If
If (colstring = "TE_PHASE") Then
R(colstring) = phaseVal
addRowFlag = True
End If
If (colstring = "TE_CATEGORY") Then
R(colstring) = categoryVal
addRowFlag = True
End If
If (colstring = "Vendor") Then
R(colstring) = vendorVal
addRowFlag = True
End If
If (colstring = "InvoiceNum") Then
R(colstring) = invoiceNumVal
addRowFlag = True
End If
If (colstring = "emp_msg") Then
R(colstring) = empMsgVal
addRowFlag = True
End If
If (colstring = "TE_EXP_AMOUNT") Then
R(colstring) = amtVal
addRowFlag = True
End If
If (colstring = "TE_CURRENTWEEKEND_DATE") Then
R(colstring) = wedVal
addRowFlag = True
End If
Else
If (colstring = "TE_SEQUENCE_NO") Then
R(colstring) = seqNumVal
addRowFlag = True
End If
If (colstring = "TE_JOB_NUMBER") Then
R(colstring) = jobNumVal
addRowFlag = True
End If
If (colstring = "TE_PHASE") Then
R(colstring) = phaseVal
addRowFlag = True
End If
If (colstring = "TE_CATEGORY") Then
R(colstring) = categoryVal
addRowFlag = True
End If
If (colstring = "Vendor") Then
R(colstring) = vendorVal
addRowFlag = True
End If
If (colstring = "InvoiceNum") Then
R(colstring) = invoiceNumVal
addRowFlag = True
End If
If (colstring = "emp_msg") Then
R(colstring) = empMsgVal
addRowFlag = True
End If
If (colstring = "TE_EXP_AMOUNT") Then
R(colstring) = amtVal
addRowFlag = True
End If
If (colstring = "TE_CURRENTWEEKEND_DATE") Then
R(colstring) = wedVal
addRowFlag = True
End If
End If
End If
End If
Next
If (addRowFlag) Then
dtRecs.Rows.Add(R)
End If
Next
Return dtRecs
End Function