This is a migrated thread and some comments may be shown as answers.

[Solved] Filter problem - InvalidCastException

2 Answers 197 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Hon Zy
Top achievements
Rank 1
Hon Zy asked on 15 Dec 2009, 12:32 AM
Hi.

I made MDX query with AdomdClient. I put result into DataSet and DataSet binded to Grid: RadGrid1.DataSource = dataset.Tables[0];

Grid loads data fine, paging works fine too, but Ive problem with filtering:

a] EnableLinqExpression = true
    * filtering string works perfect
    * filtering number gets InvalidCastException -> The specified cast is not valid. (translated by google) - error message in the end of post
    * didnt try another datatypes (like date etc)

b] EnableLinqExpression = false
   * when I press filter button, page is reloaded, but there is no filter applied.


Im totally lost, have no idea what to try next. Id be grateful for every idea. 

Thank you!


error message while using EnableLinqExpression = true

[InvalidCastException: Určené přetypování není platné.]   lambda_method(ExecutionScope , DataRowView ) +197   System.Linq.WhereEnumerableIterator`1.MoveNext() +161   System.Linq.Enumerable.Count(IEnumerable`1 source) +189   lambda_method(ExecutionScope ) +183   System.Linq.EnumerableExecutor`1.Execute() +103   System.Linq.EnumerableExecutor`1.ExecuteBoxed() +23   System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.Execute(Expression expression) +83   Telerik.Web.UI.GridDynamicQueryable.Count(IQueryable source) +278   Telerik.Web.UI.GridDataTableFromEnumerable.FillData35() +4177   Telerik.Web.UI.GridDataTableFromEnumerable.FillData() +1010   Telerik.Web.UI.GridResolveEnumerable.Initialize() +55   Telerik.Web.UI.GridResolveEnumerable.EnsureInitialized() +40   Telerik.Web.UI.GridResolveEnumerable.get_DataTable() +31   Telerik.Web.UI.GridEnumerableFromDataView..ctor(GridTableView owner, DataView dataView, Boolean autoGenerateColumns, GridColumnCollection presentColumns, String[] additionalField, Boolean retrieveAllFields) +222   Telerik.Web.UI.GridDataSourceHelper.CreateGridEnumerable(GridTableView owner, IEnumerable enumerable, Boolean caseSensitive, Boolean autoGenerateColumns, GridColumnCollection presentColumns, String[] additionalField, Boolean retrieveAllFields) +97   Telerik.Web.UI.GridDataSourceHelper.GetResolvedDataSource(GridTableView owner, Object dataSource, String dataMember, Boolean caseSensitive, Boolean autoGenerateColumns, GridColumnCollection presentColumns, String[] additionalField, Boolean retrieveAllFields) +165   Telerik.Web.UI.GridTableView.get_ResolvedDataSource() +218   Telerik.Web.UI.GridTableView.CreateChildControls(IEnumerable dataSource, Boolean useDataSource) +73   System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +57   System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +114   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +31   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142   Telerik.Web.UI.GridTableView.PerformSelect() +28   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73   Telerik.Web.UI.GridTableView.DataBind() +353   Telerik.Web.UI.GridTableView.Rebind() +97   Telerik.Web.UI.GridFilterCommandEventArgs.ExecuteCommand(Object source) +991   Telerik.Web.UI.RadGrid.OnBubbleEvent(Object source, EventArgs e) +191   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37   Telerik.Web.UI.GridItem.OnBubbleEvent(Object source, EventArgs e) +61   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37   Telerik.Web.UI.GridItem.OnBubbleEvent(Object source, EventArgs e) +165   Telerik.Web.UI.GridItem.FireCommandEvent(String commandName, Object commandArgument) +80   Telerik.Web.UI.RadGrid.RaisePostBackEvent(String eventArgument) +8934   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

2 Answers, 1 is accepted

Sort by
0
Pavlina
Telerik team
answered on 15 Dec 2009, 05:13 PM
Hi Hon,

Could you please send us the problematic page? We will review it locally, and get back to you with additional information.
Additionally, please confirm that you are using latest version 2009.3.1208 of RadControls for ASP.NET AJAX in your project.

Greetings,
Pavlina
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
0
Hon Zy
Top achievements
Rank 1
answered on 15 Dec 2009, 06:24 PM
Hi.
  I think I figured it out. There were empty cells in DataTable. (MDX returns empty cells sometimes). So I put there zeros: 

 foreach (DataColumn column in dataset.Tables[0].Columns)
        {
            foreach (DataRow row in dataset.Tables[0].Rows)
            {
                if (row[column].ToString().Length < 1)
                {
                    row[column] = 0;
                }
            }
        }


It works fine with EnableLinqExpression = true with zeros. 


I can send you a project if this is not enought.
Tags
Grid
Asked by
Hon Zy
Top achievements
Rank 1
Answers by
Pavlina
Telerik team
Hon Zy
Top achievements
Rank 1
Share this question
or