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

[Solved] Filterable error when using GridColumnSettings

2 Answers 230 Views
Grid
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Simon Brinkmann
Top achievements
Rank 1
Simon Brinkmann asked on 11 Feb 2011, 12:22 AM
I'm populating a simple grid from a DataTable.
When I apply GridColumnSettings the filters have no options in the dropdownmenu in the filterdialog so obviously I cannot filter.
The filter options in the dropdown (starts with, equal, contains etc) shows up fine when I out-comment the .columns line as in the View below, but when filtering I get an error (see below)

The View:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<System.Data.DataTable>" %>
 
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    grid
</asp:Content>
 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.Telerik().Grid(Model)
            .Name("Grid")
            //.Columns(c => c.LoadSettings((IEnumerable<GridColumnSettings>)ViewData["columns"]))
            .Filterable()
             
%>
</asp:Content>

And here's the Actions that populate the GridColumnSettings

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FDBTelerik.Models;
using Telerik.Web.Mvc;
using Telerik.Web.Mvc.Extensions;
using Telerik.Web.Mvc.UI;
using System.Collections;
using System.IO;
using System.Text;
using System.Data;
 
namespace FDBTelerik.Controllers
{
    [HandleError]
    public class HomeController : Controller
    {
        public ActionResult grid()
        {
            var columns = new[]{
                new GridColumnSettings {
                    Member = "0",
                    Title = "Klub"
                },
                new GridColumnSettings {
                    Member = "1",
                    Title = "Fornavn"
                },
                new GridColumnSettings {
                    Member = "2",
                    Width = "10",
                    Title = "Efternavn",
                    Hidden = true
                },
                new GridColumnSettings {
                    Member = "3",
                    Width = "10",
                    Title = "Email",
                    Visible = true
                },
                new GridColumnSettings {
                    Member = "4",
                    Width = "10",
                    Title = "Idræt",
                    Visible = true
                }
            };
            ViewData["columns"] = columns;

           
parseTsvTextFile DataParser = new parseTsvTextFile();
            DataTable table = DataParser.PopulateDataTableFromTextFile(Server.MapPath("/Content/FDBData.xls"));
            return View(table);
        }

The error when trying to filter:

Server Error in '/' Application.
Provided expression should have string type
Parameter name: stringExpression
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
 
Exception Details: System.ArgumentException: Provided expression should have string type
Parameter name: stringExpression
 
Source Error:
 
Line 6: 
Line 7:  <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
Line 8:  <%= Html.Telerik().Grid(Model)
Line 9:              .Name("Grid")
Line 10:             //.Columns(c => c.LoadSettings((IEnumerable<GridColumnSettings>)ViewData["columns"]))
 
 
Source File: e:\Users\simon\Desktop\FDBTelerik\FDBTelerik\Views\Home\grid.aspx    Line: 8
 
Stack Trace:
 
[ArgumentException: Provided expression should have string type
Parameter name: stringExpression]
   Telerik.Web.Mvc.Infrastructure.Implementation.Expressions.ExpressionFactory.LiftStringExpressionToEmpty(Expression stringExpression) +147
   Telerik.Web.Mvc.Infrastructure.Implementation.Expressions.FilterOperatorExtensions.GenerateCaseInsensitiveStringMethodCall(MethodInfo methodInfo, Expression left, Expression right) +16
   Telerik.Web.Mvc.Infrastructure.Implementation.Expressions.FilterOperatorExtensions.CreateExpression(FilterOperator filterOperator, Expression left, Expression right) +185
   Telerik.Web.Mvc.Infrastructure.Implementation.Expressions.FilterDescriptorExpressionBuilder.CreateBodyExpression() +291
   Telerik.Web.Mvc.FilterDescriptor.CreateFilterExpression(ParameterExpression parameterExpression) +134
   Telerik.Web.Mvc.FilterDescriptorBase.CreateFilterExpression(Expression instance) +32
   Telerik.Web.Mvc.Infrastructure.Implementation.Expressions.FilterDescriptorCollectionExpressionBuilder.CreateBodyExpression() +156
   Telerik.Web.Mvc.Infrastructure.Implementation.Expressions.FilterExpressionBuilder.CreateFilterExpression() +17
   Telerik.Web.Mvc.Extensions.QueryableExtensions.Where(IQueryable source, IEnumerable`1 filterDescriptors) +166
   Telerik.Web.Mvc.Extensions.QueryableExtensions.ToGridModel(IQueryable queryable, Int32 page, Int32 pageSize, IList`1 sortDescriptors, IEnumerable`1 filterDescriptors, IEnumerable`1 groupDescriptors) +70
   Telerik.Web.Mvc.Extensions.QueryableExtensions.ToGridModel(GridDataTableWrapper enumerable, Int32 page, Int32 pageSize, IList`1 sortDescriptors, IEnumerable`1 filterDescriptors, IEnumerable`1 groupDescriptors) +219
   Telerik.Web.Mvc.UI.GridDataProcessor.EnsureDataSourceIsProcessed() +155
   Telerik.Web.Mvc.UI.GridHtmlBuilder`1.CreateBody() +102
   Telerik.Web.Mvc.UI.GridHtmlBuilder`1.BuildCore() +285
   Telerik.Web.Mvc.UI.HtmlBuilderBase.Build() +28
   Telerik.Web.Mvc.UI.Grid`1.WriteHtml(HtmlTextWriter writer) +571
   Telerik.Web.Mvc.UI.ViewComponentBase.ToHtmlString() +86
   Telerik.Web.Mvc.UI.ViewComponentBuilderBase`2.ToHtmlString() +22
   Telerik.Web.Mvc.UI.ViewComponentBuilderBase`2.ToString() +5
   System.Web.HttpWriter.Write(Object obj) +27
   System.Web.Mvc.SwitchWriter.Write(Object value) +15
   System.Web.UI.HtmlTextWriter.Write(Object value) +37
   ASP.views_home_grid_aspx.__RenderContent2(HtmlTextWriter __w, Control parameterContainer) in e:\Users\simon\Desktop\FDBTelerik\FDBTelerik\Views\Home\grid.aspx:8
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +109
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   ASP.views_shared_site_master.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in e:\Users\simon\Desktop\FDBTelerik\FDBTelerik\Views\Shared\Site.Master:21
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +109
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer) +55
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3060
 
 
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

Thanks for any help in this matter.

Simon

2 Answers, 1 is accepted

Sort by
0
Darren du Preez
Top achievements
Rank 1
answered on 12 May 2011, 09:10 AM
Hi Simon

Have you managed to resolve this issue?

Thanks,
0
João Vitor
Top achievements
Rank 1
answered on 27 Sep 2011, 10:59 PM
Check this out:
http://telerikaspnetmvc.codeplex.com/workitem/9241
Tags
Grid
Asked by
Simon Brinkmann
Top achievements
Rank 1
Answers by
Darren du Preez
Top achievements
Rank 1
João Vitor
Top achievements
Rank 1
Share this question
or