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

Radgrid filter does not show on multi headercolumn

1 Answer 151 Views
Grid
This is a migrated thread and some comments may be shown as answers.
madhavi
Top achievements
Rank 1
madhavi asked on 27 Jan 2015, 10:16 AM
Hi, 

we are pro grammatically creating Radgrid and we also have multi headers in some columns.
When filter is applied then all other single header columns shows filter menu but multi header columns does not show filter menu when click on filter button

please let me know what i my doing any wrong or whether we can not applied filter to multi header column


Column definition code is below

RadGrid1.ID = "gvTransaction";
        //RadGrid1.EnableViewState = false;
        RadGrid1.AutoGenerateColumns = false;
        RadGrid1.MasterTableView.DataKeyNames = Datakeys;
        RadGrid1.MasterTableView.HeaderStyle.Wrap = false;
        RadGrid1.MasterTableView.ItemStyle.Wrap = false;
        RadGrid1.MasterTableView.BorderWidth = 0;
        RadGrid1.CssClass = "RadGridCustomClass";
        RadGrid1.ShowFooter = true;
        RadGrid1.AlternatingItemStyle.BackColor = Color.White;
        RadGrid1.MasterTableView.EnableHierarchyExpandAll = false;
        RadGrid1.ClientSettings.Resizing.AllowRowResize = false;
        RadGrid1.EnableHeaderContextMenu = false;
        RadGrid1.EnableHeaderContextFilterMenu = false;
        RadGrid1.MasterTableView.AllowFilteringByColumn = true;

        RadGrid1.MasterTableView.Columns.Clear();
        RadGrid1.MasterTableView.ColumnGroups.Clear();
        RadGrid1.GroupingSettings.CaseSensitive = false;
        RadGrid1.AllowSorting = false;

        //RadGrid1.ClientSettings.Scrolling.EnableVirtualScrollPaging = true;
        RadGrid1.ClientSettings.Scrolling.UseStaticHeaders = true;
        RadGrid1.ClientSettings.Scrolling.ScrollHeight = 230;
        RadGrid1.ClientSettings.Scrolling.ScrollBarWidth = 100;
        //RadGrid1.ClientSettings.Scrolling.FrozenColumnsCount = 7;
        RadGrid1.Width = 1300;
        RadGrid1.ClientSettings.Scrolling.AllowScroll = true;
        RadGrid1.NeedDataSource += new GridNeedDataSourceEventHandler(gvTransaction_NeedDataSource);
        RadGrid1.FilterCheckListItemsRequested += new GridFilterCheckListItemsRequestedEventHandler(gvTransaction_FilterCheckListItemsRequested);
        RadGrid1.PreRender += new EventHandler(gvTransaction_PreRender);
        RadGrid1.ItemCommand += new GridCommandEventHandler(gvTransaction_ItemCommand);

        //RadGrid1.EnableHeaderContextMenu = true;
        //RadGrid1.EnableHeaderContextFilterMenu = true;
        // RadGrid1.MasterTableView.ExportToExcel();
        RadGrid1.FilterType = GridFilterType.Combined;
        DataTable dtActivityOptionCodes = new DataTable();
        DataTable dtMVData = new DataTable();
        DataTable dtReadOnlyFields = new DataTable();
        try
        {
            for (int j = 0, indexNo = 0; j < tlmSettings.Count(); j++)
            //  for (int j = 0; j < tlmSettings.Count(); j++)
            {
                SeasonalTNAService.TLMSettings tlmSettingsgroup = new TLMSettings();
                tlmSettingsgroup.SeasonalTLMId = tlmSettings[j].SeasonalTLMId;
                var cboGroupedValues = objSeasonalTNAServiceClient.FetchSeasonalTLMGroupedValues(tlmSettingsgroup);

                if (cboGroupedValues.Count() > 0)
                {
                    MVTlmSettings[j].IsGrouped = 1;
                }
                if (tlmSettings[j].FieldTypeID == 352)
                {
                    TableItemStyle style = new TableItemStyle();


                    SeasonalTNAService.TLMSettings tlmSettingsObjs = new SeasonalTNAService.TLMSettings();
                    tlmSettingsObjs.FieldID = tlmSettings[j].CategoryId;
                    tlmSettingsObjs.CategoryId = 404;
                    tlmSettingsObjs.FieldTypeID = 352;
                    var cboMValues = objSeasonalTNAServiceClient.FetchMasterValues(tlmSettingsObjs);

                    SeasonalTNAService.TLMSettings tlmSettingsObjs1 = new TLMSettings();
                    tlmSettingsObjs1.CategoryValueId = 404;
                    tlmSettingsObjs1.SeasonalTLMId = tlmSettings[j].SeasonalTLMId;
                    tlmSettingsObjs1.MasterId = tlmSettingsObjs1.SeasonalTLMId;
                    var cboSavedMValues = objSeasonalTNAServiceClient.FetchSeasonalTLMMasterCboValues(tlmSettingsObjs1);


                    var result = cboMValues.Where(p => cboSavedMValues.Any(p2 => p.FieldValueID == p2.FieldValueID));

                    if (result.Count() > 0)
                    {
                        int executeOnce = 0;
                        GridColumnGroup columnGroup = new GridColumnGroup();
                        columnGroup.HeaderText = tlmSettings[j].Name;
                        columnGroup.Name = tlmSettings[j].Name;
                        columnGroup.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                        RadGrid1.MasterTableView.ColumnGroups.Add(columnGroup);
                        RadGrid1.MasterTableView.ExpandCollapseColumn.Visible = true;
                        int k = 0;
                        foreach (var item in result)
                        {
                            var column = new GridBoundColumn
                            {
                                HeaderText = item.FieldValue,
                                DataField = tlmSettings[j].Name + "$_" + item.FieldValue,
                                ColumnGroupName = tlmSettings[j].Name,
                                //DataMemberBinding = new Binding("Columns[" + _dynamicColumns + "]"),
                            };
                            //gvTransaction.Columns.Add(column);
                            column.FilterCheckListEnableLoadOnDemand = true;
                            RadGrid1.MasterTableView.Columns.Add(column);

                            TLMSettings tlm = new TLMSettings();
                            tlm.SeasonalTLMId = tlmSettings[j].SeasonalTLMId;
                            tlm.SeasonalTemplateId = tlmSettings[j].SeasonalTemplateId;
                            tlm.SeasonalActivityId = tlmSettings[j].SeasonalActivityId;
                            tlm.TLMValueId = tlmSettings[j].TLMValueId;
                            tlm.TLMId = tlmSettings[j].TLMId;
                            tlm.SubModuleId = tlmSettings[j].SubModuleId;
                            tlm.CategoryId = tlmSettings[j].CategoryId;
                            tlm.HierarchyHeaderId = tlmSettings[j].SubModuleId;
                            tlm.HierarchyId = tlmSettings[j].HierarchyId;
                            tlm.FieldCode = tlmSettings[j].FieldCode;
                            tlm.FieldType = "DEC";//tlmSettings[j].FieldType;               -
                            tlm.Calculation = tlmSettings[j].Calculation;
                            tlm.Name = item.FieldValue;
                            tlm.Formula = tlmSettings[j].Formula;
                            tlm.PreviousActivityID = tlmSettings[j].PreviousActivityID;
                            tlm.PreviousActivityFieldId = tlmSettings[j].PreviousActivityFieldId;
                            tlm.MasterFieldId = tlmSettings[j].CategoryId;
                            tlm.OrderNo = tlmSettings[j].OrderNo;
                            // tlm.TLMValSubId = Convert.ToString(dr["tlm_value_id_sub_module_id"]);
                            tlm.FieldTypeID = tlmSettings[j].FieldTypeID;

                            tlm.TLMValueCode = tlmSettings[j].TLMValueCode;
                            tlm.TotalCalculation = tlmSettings[j].TotalCalculation;
                            tlm.RowCalculation = tlmSettings[j].RowCalculation;
                            tlm.ColumnCalculation = tlmSettings[j].ColumnCalculation;
                            tlm.PlanCompletion = tlmSettings[j].PlanCompletion;
                            tlm.ActualCompletion = tlmSettings[j].ActualCompletion;
                            tlm.IsSubHeader = 1;
                            tlm.MasterFieldName = tlmSettings[j].Name;
                            var items = from elem in MVTlmSettings
                                        where elem.Name == tlmSettings[j].Name
                                        select elem;


                            if (executeOnce == 0)
                            {
                                foreach (var x in items)
                                {

                                    indexNo = MVTlmSettings.IndexOf(x);
                                }

                                if (indexNo + k != 0)
                                {
                                    MVTlmSettings.RemoveAt(indexNo + k);
                                }

                                executeOnce++;
                            }
                            if (MVTlmSettings.Count() < (indexNo + k))
                            {
                                MVTlmSettings.Add(tlm);
                            }
                            else
                            {
                                MVTlmSettings.Insert(indexNo + k, tlm);
                            }


                            dtActivityOptionCodes.Columns.Add(tlmSettings[j].Name + "$_" + item.FieldValue);
                            dtMVData.Columns.Add(tlmSettings[j].Name + k);

                            if (dtMVData.Rows.Count > 0)
                            {
                                dtMVData.Rows[0][tlmSettings[j].Name + k] = item.FieldValue;
                            }
                            else
                            {
                                DataRow dr = dtMVData.NewRow();
                                dr[tlmSettings[j].Name + k] = item.FieldValue;
                                dtMVData.Rows.Add(dr);
                            }
                            k++;
                        }
                    }
                    else
                    {
                        var column = new GridBoundColumn
                        {
                            HeaderText = tlmSettings[j].Name,
                            DataField = tlmSettings[j].Name

                        };
                        //column.FilterTemplate = n
                        column.AutoPostBackOnFilter = true;
                        column.CurrentFilterFunction = GridKnownFunction.Contains;
                        column.FilterCheckListEnableLoadOnDemand = true;
                        RadGrid1.MasterTableView.Columns.Add(column);
                        dtActivityOptionCodes.Columns.Add(tlmSettings[j].Name);
                        dtMVData.Columns.Add(tlmSettings[j].Name);
                    }
                }
                else
                {
                    var column = new GridBoundColumn
                    {
                        HeaderText = tlmSettings[j].Name,
                        DataField = tlmSettings[j].Name

                    };
                    column.AutoPostBackOnFilter = true;
                    column.CurrentFilterFunction = GridKnownFunction.Contains;
                    column.FilterCheckListEnableLoadOnDemand = true;
                    RadGrid1.MasterTableView.Columns.Add(column);
                    dtActivityOptionCodes.Columns.Add(tlmSettings[j].Name);
                    dtMVData.Columns.Add(tlmSettings[j].Name);
                }
                if (MVTlmSettings[j].IsSubHeader == 1)
                {
                    if (MVTlmSettings[j].FieldType == "INT")
                    {
                        dtActivityOptionCodes.Columns[MVTlmSettings[j].MasterFieldName + "$_" + MVTlmSettings[j].Name].DataType = typeof(System.Int32);
                    }
                    else if (MVTlmSettings[j].FieldType == "DEC")
                    {

                        dtActivityOptionCodes.Columns[MVTlmSettings[j].MasterFieldName + "$_" + MVTlmSettings[j].Name].DataType = typeof(System.Double);
                    }
                    else if (MVTlmSettings[j].FieldCode == "G004")
                    {

                        dtActivityOptionCodes.Columns[MVTlmSettings[j].MasterFieldName + "$_" + MVTlmSettings[j].Name].DataType = typeof(System.String);
                    }
                    //else if (MVTlmSettings[j].FieldType == "DATE")
                    //{

                    //    dtActivityOptionCodes.Columns[MVTlmSettings[j].Name].DataType = typeof(System.DateTime);
                    //}
                    else
                    {
                        dtActivityOptionCodes.Columns[MVTlmSettings[j].MasterFieldName + "$_" + MVTlmSettings[j].Name].DataType = typeof(System.String);
                    }
                }
                else
                {
                    if (MVTlmSettings[j].FieldType == "INT")
                    {
                        dtActivityOptionCodes.Columns[MVTlmSettings[j].Name].DataType = typeof(System.Int64);
                    }
                    else if (MVTlmSettings[j].FieldType == "DEC")
                    {

                        dtActivityOptionCodes.Columns[MVTlmSettings[j].Name].DataType = typeof(System.Double);
                    }
                    else if (MVTlmSettings[j].FieldCode == "G004")
                    {

                        dtActivityOptionCodes.Columns[MVTlmSettings[j].Name].DataType = typeof(System.String);
                    }
                    //else if (MVTlmSettings[j].FieldType == "DATE")
                    //{

                    //    dtActivityOptionCodes.Columns[MVTlmSettings[j].Name].DataType = typeof(System.DateTime);
                    //}
                    else
                    {
                        dtActivityOptionCodes.Columns[MVTlmSettings[j].Name].DataType = typeof(System.String);
                    }
                }
                if (!tlmSettings[j].FieldCode.StartsWith("T"))
                {
                    dtReadOnlyFields.Columns.Add(tlmSettings[j].Name);
                }
                if (tlmSettings[j].FieldCode.Equals("G004") && ddlActivityCompletion.SelectedValue == "224")
                {
                    dtReadOnlyFields.Columns.Remove(tlmSettings[j].Name);
                }
                if (tlmSettings[j].FieldCode.Equals("G006"))
                {
                    dtReadOnlyFields.Columns.Remove(tlmSettings[j].Name);
                }
                if (!tlmSettings[j].PreviousActivityID.Equals(-1))
                {
                    if (!dtReadOnlyFields.Columns.Contains(tlmSettings[j].Name))
                    {
                        dtReadOnlyFields.Columns.Add(tlmSettings[j].Name);
                    }
                }
                //if (tlmSettings[j].ActualCompletion.Equals(1))
                //{
                //    if (!dtReadOnlyFields.Columns.Contains(tlmSettings[j].Name))
                //    {
                //        dtReadOnlyFields.Columns.Add(tlmSettings[j].Name);
                //    }
                //}
                if (tlmSettings[j].FieldTypeID == 353 || tlmSettings[j].FieldTypeID == 354)
                {
                    if (!dtReadOnlyFields.Columns.Contains(tlmSettings[j].Name))
                    {
                        dtReadOnlyFields.Columns.Add(tlmSettings[j].Name);
                    }
                }
                if (tlmSettings[j].PlanCompletion.Equals(1))
                {
                    if (!dtReadOnlyFields.Columns.Contains(tlmSettings[j].Name))
                    {
                        dtReadOnlyFields.Columns.Add(tlmSettings[j].Name);
                    }
                }
            }



            //if (status == 1)
            //{
            var column1 = new GridBoundColumn
            {
                HeaderText = "STATUS",
                DataField = "STATUS"
            };
            RadGrid1.MasterTableView.Columns.Add(column1);
            dtActivityOptionCodes.Columns.Add("STATUS");
            dtMVData.Columns.Add("STATUS");

            logger.Error("Grid Structure Created");


            dtActivityOptionCodes.Columns.Add("HierarchyId");
            dtActivityOptionCodes.Columns.Add("TransactionStatusId");
            dtActivityOptionCodes.Columns.Add("Access");
            dtActivityOptionCodes.Columns.Add("TransStatusCategoryValueId");
            dtActivityOptionCodes.Columns.Add("TransStatusCategoryValueCode");

            dtMVData.Columns.Add("HierarchyId");
            dtMVData.Columns.Add("TransactionStatusId");
            dtMVData.Columns.Add("Access");
            dtMVData.Columns.Add("TransStatusCategoryValueId");
            dtMVData.Columns.Add("TransStatusCategoryValueCode");

            //ViewState["Vists"] = (int)ViewState["Vists"] + 1;
            ViewState["MVTlmSettings"] = MVTlmSettings;
            ViewState["tlmSettings"] = tlmSettings;
            ViewState["HierarchyOrder"] = HOrder;

            ViewState["dtColumns"] = dtActivityOptionCodes;
            ViewState["dtMVColumns"] = dtMVData;
            ViewState["ReadOnlyField"] = dtReadOnlyFields;
            this.PlaceHolder1.Controls.Add(RadGrid1);

        }
        catch (Exception ex)
        {
            logger.Error("Error while creating structure" + ex.Message.ToString());
            ShowError("MS00");
            logger.Error(ex.StackTrace.ToString());
        }

Thanks,
Madhavi   

1 Answer, 1 is accepted

Sort by
0
Eyup
Telerik team
answered on 30 Jan 2015, 10:08 AM
Hello Madhavi,

Can you please verify that you have followed the steps provided in the following article when creating the grid programmatically?
http://demos.telerik.com/aspnet-ajax/grid/examples/data-binding/programmatic-hierarchy/defaultcs.aspx

You can open a formal support ticket to send us a basic runnable web site demonstrating the problematic behavior.

Regards,
Eyup
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
Tags
Grid
Asked by
madhavi
Top achievements
Rank 1
Answers by
Eyup
Telerik team
Share this question
or