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

Radgrid Filter

5 Answers 294 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Jessy Joseph
Top achievements
Rank 1
Jessy Joseph asked on 01 Dec 2010, 07:24 PM
I have a checkbox column in my radgrid. Is it possible to have filter value as checked when it's loaded. I have shown in the attached  image.

Thanks.

5 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 02 Dec 2010, 05:46 AM
Hello Jessy,

Try the following code snippet to select the CheckBox in GridFilteringItem.

ASPX:
<telerik:GridCheckBoxColumn DataField="isapproved" UniqueName="GridCheckBoxColumn">
</telerik:GridCheckBoxColumn>

C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridFilteringItem)
        {
            GridFilteringItem filterItem = (GridFilteringItem)e.Item;
            CheckBox chkbox = (CheckBox)filterItem["GridCheckBoxColumn"].Controls[0];
            chkbox.Checked = true;
        }
    }

Thanks,
Princy.
0
Jessy Joseph
Top achievements
Rank 1
answered on 02 Dec 2010, 04:29 PM
It checks the checkbox in the filter column at inital load but still shows the row which is not checked.

   
 <telerik:GridCheckBoxColumn DataField="Active" HeaderText="Active" SortExpression="Active"
                                                                    UniqueName="Active" AutoPostBackOnFilter="true" ShowFilterIcon="false">
                                                                </telerik:GridCheckBoxColumn>
  
protected void RadGridCampCreate_ItemDataBound(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridFilteringItem)
        {
            GridFilteringItem filterItem = (GridFilteringItem)e.Item;
            CheckBox chkbox = (CheckBox)filterItem["Active"].Controls[0];
            chkbox.Checked = true;
             
  
        }
        
  
    }
0
Princy
Top achievements
Rank 2
answered on 03 Dec 2010, 05:49 AM
Hello Jessy,

You can apply default filter on initial load for a RadGrid control by setting the FilterExpression property of the MasterTableView. And set the CurrentFilterFunction and CurrentFilterValue properties of a column you want to use for filtering.

ASPX:
<MasterTableView  FilterExpression="([Active] = 'True')">
  <Columns>
     <telerik:GridCheckBoxColumn DataField="Active" UniqueName="Active"
         CurrentFilterFunction="EqualTo" CurrentFilterValue="True">
     </telerik:GridCheckBoxColumn>
  . . . . . . . . . .

Also refer the following documentation for more details on this.
Applying default filter on initial load

Thanks,
Princy.
0
Jessy Joseph
Top achievements
Rank 1
answered on 06 Dec 2010, 08:41 PM
Princy when I applied  your code it gave me the following error

<MasterTableView AutoGenerateColumns="False" DataKeyNames="CampaignID" ClientDataKeyNames="CampaignID"
Width="100%" CommandItemDisplay="Top" PageSize="20" ShowHeadersWhenNoRecords="true"
 DataSourceID="dsCampCreate" FilterExpression="([Active] = 'True')">
  
  
<telerik:GridCheckBoxColumn DataField="Active" HeaderText="Is Active" SortExpression="Active"
UniqueName="Active" AutoPostBackOnFilter="true" CurrentFilterFunction="EqualTo"
ShowFilterIcon="false"   CurrentFilterValue="True"
<FilterTemplate
<telerik:RadComboBox ID="ImportedFilter" runat="server" OnClientSelectedIndexChanged="ImportedFilterSelectedIndexChanged"
SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("Active").CurrentFilterValue %>' 
Width="70px" Skin="Outlook"> 
<Items
<telerik:RadComboBoxItem Text="Yes" Value="True"  /> 
<telerik:RadComboBoxItem Text="No" Value="False" /> 
<telerik:RadComboBoxItem Text="NoFilter" Value="" /> 
</Items
</telerik:RadComboBox
<telerik:RadScriptBlock ID="RadScriptBlock12" runat="server"
    
<script type="text/javascript"
function ImportedFilterSelectedIndexChanged(sender, args) { 
    var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>"); 
    var filterVal = args.get_item().get_value(); 
     if (filterVal == "True") { 
        tableView.filter("Active", filterVal, "EqualTo"); 
    
    else if (filterVal == "False") { 
        tableView.filter("Active", filterVal, "EqualTo"); 
    
    else if (filterVal == "") { 
        tableView.filter("Active", filterVal, "NoFilter"); 
    
        
}  
</script
    
</telerik:RadScriptBlock
</FilterTemplate
</telerik:GridCheckBoxColumn>

___________________________________________________________________________________________________________________

Expression expected

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: Telerik.Web.UI.ParseException: Expression expected

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[ParseException: Expression expected]
   Telerik.Web.UI.ExpressionParser.ParsePrimaryStart() +124
   Telerik.Web.UI.ExpressionParser.ParsePrimary() +14
   Telerik.Web.UI.ExpressionParser.ParseUnary() +260
   Telerik.Web.UI.ExpressionParser.ParseMultiplicative() +26
   Telerik.Web.UI.ExpressionParser.ParseAdditive() +26
   Telerik.Web.UI.ExpressionParser.ParseComparison() +36
   Telerik.Web.UI.ExpressionParser.ParseLogicalAnd() +26
   Telerik.Web.UI.ExpressionParser.ParseLogicalOr() +26
   Telerik.Web.UI.ExpressionParser.ParseExpression() +23
   Telerik.Web.UI.ExpressionParser.ParseParenExpression() +38
   Telerik.Web.UI.ExpressionParser.ParsePrimaryStart() +71
   Telerik.Web.UI.ExpressionParser.ParsePrimary() +14
   Telerik.Web.UI.ExpressionParser.ParseUnary() +260
   Telerik.Web.UI.ExpressionParser.ParseMultiplicative() +26
   Telerik.Web.UI.ExpressionParser.ParseAdditive() +26
   Telerik.Web.UI.ExpressionParser.ParseComparison() +36
   Telerik.Web.UI.ExpressionParser.ParseLogicalAnd() +26
   Telerik.Web.UI.ExpressionParser.ParseLogicalOr() +26
   Telerik.Web.UI.ExpressionParser.ParseExpression() +23
   Telerik.Web.UI.ExpressionParser.Parse(Type resultType) +24
   Telerik.Web.UI.DynamicExpression.ParseLambda(ParameterExpression[] parameters, Type resultType, String expression, Object[] values) +47
   Telerik.Web.UI.DynamicExpression.ParseLambda(Type itType, Type resultType, String expression, Object[] values) +65
   Telerik.Web.UI.GridDynamicQueryable.Where(IQueryable source, String predicate, Object[] values) +61
   Telerik.Web.UI.GridDataTableFromEnumerable.FillData35() +3018
   Telerik.Web.UI.GridDataTableFromEnumerable.FillData() +628
   Telerik.Web.UI.GridResolveEnumerable.Initialize() +32
   Telerik.Web.UI.GridResolveEnumerable.EnsureInitialized() +20
   Telerik.Web.UI.GridEnumerableFromDataView..ctor(GridTableView owner, DataView dataView, Boolean autoGenerateColumns, GridColumnCollection presentColumns, String[] additionalField, Boolean retrieveAllFields) +158
   Telerik.Web.UI.GridDataSourceHelper.CreateGridEnumerable(GridTableView owner, IEnumerable enumerable, Boolean caseSensitive, Boolean autoGenerateColumns, GridColumnCollection presentColumns, String[] additionalField, Boolean retrieveAllFields) +76
   Telerik.Web.UI.GridDataSourceHelper.GetResolvedDataSource(GridTableView owner, Object dataSource, String dataMember, Boolean caseSensitive, Boolean autoGenerateColumns, GridColumnCollection presentColumns, String[] additionalField, Boolean retrieveAllFields) +383
   Telerik.Web.UI.GridTableView.get_ResolvedDataSource() +140
   Telerik.Web.UI.GridTableView.CreateControlHierarchy(Boolean useDataSource) +309
   Telerik.Web.UI.GridTableView.CreateChildControls(IEnumerable dataSource, Boolean useDataSource) +495
   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() +16
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
   Telerik.Web.UI.GridTableView.DataBind() +221
   Telerik.Web.UI.RadGrid.DataBind() +80
   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
   System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +72
   System.Web.UI.Control.EnsureChildControls() +87
   Telerik.Web.UI.GridBaseDataList.get_Controls() +15
   Telerik.Web.UI.RadAjaxControl.PopulatePlainPanels(Control parent, List`1 list, Control root) +63
   Telerik.Web.UI.RadAjaxControl.OnPagePreRender(Object sender, EventArgs e) +1115
   System.EventHandler.Invoke(Object sender, EventArgs e) +0
   System.Web.UI.Control.OnPreRender(EventArgs e) +8686294
   System.Web.UI.Control.PreRenderRecursiveInternal() +80
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842

--------------------------------------------------------------------------------------------------------------------------------------------------
0
Jessy Joseph
Top achievements
Rank 1
answered on 06 Dec 2010, 10:02 PM
Finally got the solution to it. Added "EnableLinqExpressions="false" to the grid.

Thanks.
Tags
Grid
Asked by
Jessy Joseph
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Jessy Joseph
Top achievements
Rank 1
Share this question
or