I am preparing dynamic grid using VB.net and RAD grid where columns are getting generated in Run Time. I am trying to apply filter (inbuilt filter) on multiple column at time but application is throwing exception (is neither a DataColumn nor a DataRelation for table Table). This error occurs when I try to apply filter. I am unable to identify root cause. Any input would be appreciated. I am using NeedDataSource() event of Radgrid and this event is throwing above mentioned exception on applying filter.
.Telerik page setting:
<telerik:RadGrid ID="gridData" runat="server" OnGridExporting="grid_GridExporting" RenderMode="Auto" ClientIDMode="AutoID" >
</telerik:RadGrid>
Code-behibd setting:
On page_load():
If Not ds Is Nothing Then
DefineGridStructure(Session("DynamicResultReportGridData"))
gridData.DataBind()
end
--------------------------
Private Sub DefineGridStructure(ByVal allCloumnData As DataSet)
'Dim grid As New RadGrid()
gridData.DataSource = allCloumnData
Session.Add("DynamicResultReportGridData", allCloumnData)
gridData.Skin = "Default"
gridData.Width = Unit.Percentage(100)
gridData.PageSize = 15
gridData.AllowPaging = True
gridData.AllowFilteringByColumn = True
gridData.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric
gridData.AutoGenerateColumns = False
'Add Customers table
gridData.MasterTableView.Width = Unit.Percentage(100)
Dim intVal As Integer = allCloumnData.Tables(0).Columns.Count
For a = 0 To intVal - 1
Dim boundColumn As New GridBoundColumn()
boundColumn.DataField = allCloumnData.Tables(0).Columns(a).Caption().Trim().ToString()
boundColumn.HeaderText = allCloumnData.Tables(0).Columns(a).Caption().Trim().ToString()
boundColumn.UniqueName = allCloumnData.Tables(0).Columns(a).Caption().Trim().ToString()
boundColumn.ItemStyle.CssClass = "text2"
boundColumn.HeaderStyle.CssClass = "GridHeader"
boundColumn.AllowFiltering = True
gridData.MasterTableView.Columns.Add(boundColumn)
Next
End Sub
----------------------------------------------------
Protected Sub gridData_NeedDataSource(ByVal Source As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles gridData.NeedDataSource
gridDiv.Visible = True
gridDiv1.Visible = True
gridData.Visible = True
Dim allCloumnData As DataSet = Session("DynamicResultReportGridData")
If allCloumnData Is Nothing Then
Else
gridData.DataSource = allCloumnData
End If
End Sub
Thanks in advance
Rajeev