Get Current rows from RadGrid

2 posts, 0 answers
  1. Tamara
    Tamara avatar
    1 posts
    Member since:
    Apr 2020

    Posted 01 Apr Link to this post

    Is there any way to get current rows  from RadGrid on Server side, because I want to call some method end set some of the fields only for currently showed rows. I'm using OnNeedDataSource and i have grouping and sorting in my RadGrid. 

    For better understanding here is example:

    I have 1000 elements in database and i want my method to apply only on items that i'm showing (10/20/50) one current page of paggination. 

    <div class="demo-container no-bg">
                    <telerik:RadGrid runat="server"
                        ID="OrdiniDashboard_Grid"
                        OnNeedDataSource="OnNeedDataSource_OrdiniDashboard"
                        RenderMode="Lightweight"
                        PageSize="10"
                        AllowSorting="True"
                        AllowMultiRowSelection="True"
                        AllowPaging="True"
                        ShowGroupPanel="True"
                        AutoGenerateColumns="False"
                        OnPreRender="GridOrdDashboard_PreRender"
                        OnItemCreated = "OnItemCreated">
                        <PagerStyle Mode="NextPrevAndNumeric" AlwaysVisible="True" Position="Bottom"></PagerStyle>
                        <MasterTableView
                            Width="100%"
                            GroupLoadMode="Client"
                            ShowGroupFooter="true"
                            ClientDataKeyNames="IdOrder, IdCliente,TipologiaCliente,RagSoc,NomeU,CognomeU,Confirm,PriorityId,PriorityCompleteName,FlagPagamento,StatoPagamento, OrdineEsportato, OrdineEsportatoName, totaleImporto,totaleValue">
                            <GroupByExpressions>
                                <telerik:GridGroupByExpression>
                                    <SelectFields>
                                        <telerik:GridGroupByField
                                            FieldAlias="DataScadenza"
                                            FieldName="DataScadenza"
                                            HeaderText="<%$ Resources: Doc_Labels, dataScadenza %>"
                                            FormatString="{0:dd/MM/yyyy}"
                                            HeaderValueSeparator="from date: "></telerik:GridGroupByField>
                                    </SelectFields>
                                    <GroupByFields>
                                        <telerik:GridGroupByField
                                            FieldName="DataScadenza"></telerik:GridGroupByField>
                                    </GroupByFields>
                                </telerik:GridGroupByExpression>
                                <telerik:GridGroupByExpression>
                                    <SelectFields>
                                        <telerik:GridGroupByField
                                            FieldAlias="StatoOrdineValue"
                                            FieldName="StatoOrdineValue"
                                            HeaderText="Stato"></telerik:GridGroupByField>
                                    </SelectFields>
                                    <GroupByFields>
                                        <telerik:GridGroupByField
                                            FieldName="StatoOrdineValue"></telerik:GridGroupByField>
                                    </GroupByFields>
                                </telerik:GridGroupByExpression>
                            </GroupByExpressions>

                            <Columns>

                            <telerik:GridBoundColumn
                                    AutoPostBackOnFilter="false"
                                    DataField="IdOrder"
                                    DataType="System.Int32"
                                    UniqueName="IdOrder"
                                    Display="false"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center">
                                </telerik:GridBoundColumn>

                                <telerik:GridBoundColumn
                                    AutoPostBackOnFilter="false"
                                    DataField="IdCliente"
                                    DataType="System.Int32"
                                    UniqueName="IdCliente"
                                    Display="false"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center">
                                </telerik:GridBoundColumn>

                                <telerik:GridBoundColumn
                                    AutoPostBackOnFilter="false"
                                    SortExpression="NumeroOrdine"
                                    Groupable="false"
                                    HeaderText=" <%$ Resources: Doc_Labels, numero %>"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    DataField="NumeroOrdine"
                                    Display="true"
                                    Aggregate="Count"
                                    FooterAggregateFormatString="Ordini totali: {0}"
                                    UniqueName="NumeroOrdine">
                                </telerik:GridBoundColumn> 

                                <telerik:GridBoundColumn AutoPostBackOnFilter="false"
                                    SortExpression="JobName"
                                    Groupable="false"
                                    DataField="JobName"
                                    Display="true"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    HeaderText=" <%$ Resources: Doc_Labels, jobName %>">
                                </telerik:GridBoundColumn>

                                <telerik:GridTemplateColumn
                                    AutoPostBackOnFilter="false"
                                    SortExpression="Cliente"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    UniqueName="Cliente"
                                    DataField="Cliente"
                                    GroupByExpression="Cliente Group By Cliente"
                                    Groupable="true"
                                    HeaderText=" <%$ Resources: Doc_Labels, cliente %>">
                                    <ItemTemplate>
                                        <a href="../../../Views/settings/Clienti/Gestione_Cliente.aspx?idCliente="></a>
                                    </ItemTemplate>
                                </telerik:GridTemplateColumn>

                                <telerik:GridBoundColumn
                                    UniqueName="DataOrdine"
                                    AutoPostBackOnFilter="false"
                                    SortExpression="DataOrdine"
                                    HeaderText=" <%$ Resources: Doc_Labels, dataEmissione %>"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    HeaderButtonType="TextButton"
                                    DataField="DataOrdine"
                                    GroupByExpression="DataOrdine Group By DataOrdine"
                                    Groupable="true"
                                    DataFormatString="{0:dd/MM/yyyy}"
                                    Display="true">
                                </telerik:GridBoundColumn>

                                <telerik:GridBoundColumn
                                    AutoPostBackOnFilter="false"
                                    SortExpression="DataScadenza"
                                    HeaderText=" <%$ Resources: Doc_Labels, dataScadenza %>"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    HeaderButtonType="TextButton"
                                    DataField="DataScadenza"
                                    DataFormatString="{0:dd/MM/yyyy}"
                                    Display="true">
                                </telerik:GridBoundColumn>

                                <telerik:GridTemplateColumn
                                    AutoPostBackOnFilter="false"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    UniqueName="Confirm"
                                    SortExpression="StatoOrdineValue"
                                    HeaderButtonType="TextButton"
                                    GroupByExpression="StatoOrdineValue Group By StatoOrdineValue"
                                    HeaderText=" <%$ Resources: Doc_Labels, stato %>"
                                    DataField="StatoOrdineValue"
                                    DataType="System.String">
                                    <ItemTemplate>
                                        <div></div>
                                    </ItemTemplate>
                                </telerik:GridTemplateColumn>

                                <telerik:GridTemplateColumn
                                    UniqueName="Priority"
                                    HeaderText="Priority"
                                    SortExpression="PriorityCompleteName"
                                    DataType="System.String"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    DataField="PriorityCompleteName"
                                    GroupByExpression="PriorityCompleteName Group By PriorityCompleteName">
                                    <ItemTemplate>
                                        <span class="label label-sm circle popovers infoPopOver"
                                            style="color: white; background-color: rgb(132, 151, 152);"
                                            data-placement="top"
                                            data-trigger="hover"></span>
                                    </ItemTemplate>
                                </telerik:GridTemplateColumn>

                                <telerik:GridBoundColumn
                                    UniqueName="StatoDocumentoFattura"
                                    DataField="StatoDocumentoFattura"
                                    SortExpression="StatoDocumentoFattura"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    HeaderText=" <%$ Resources: Doc_Labels, gestioneStatoDocumento %>"
                                    GroupByExpression="StatoDocumentoFattura Group By StatoDocumentoFattura">
                                </telerik:GridBoundColumn>

                                <telerik:GridTemplateColumn
                                    UniqueName="StatoPagamento"
                                    SortExpression="StatoPagamento"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    HeaderText="<%$ Resources:Doc_Labels, statoPagamento %>"
                                    HeaderStyle-HorizontalAlign="Center"
                                    GroupByExpression="StatoPagamento Group By StatoPagamento"
                                    DataField="StatoPagamento">
                                    <ItemTemplate>
                                        <i class="fa fa-euro popovers"
                                            data-placement="top"
                                            data-trigger="hover"
                                            style="width: 100%"></i>
                                    </ItemTemplate>
                                </telerik:GridTemplateColumn>

                                <telerik:GridBoundColumn
                                    UniqueName="TipoPagamento"
                                    DataField="TipoPagamento"
                                    SortExpression="TipoPagamento"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    HeaderText=" <%$ Resources: Doc_Labels, tipoPagamento %>"
                                    GroupByExpression="TipoPagamento Group By TipoPagamento">
                                </telerik:GridBoundColumn>

                                <telerik:GridTemplateColumn
                                    UniqueName="OrdineEsportato"
                                    DataField="OrdineEsportato"
                                    SortExpression="OrdineEsportato"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    HeaderText=" <%$ Resources: Doc_Labels, esportato %>"
                                    GroupByExpression="OrdineEsportatoName Group By OrdineEsportatoName">
                                    <ItemTemplate>
                                        <i class=" fa fa-check-circle  popovers infoPopOver"
                                            data-placement="top"
                                            data-trigger="hover"
                                            style="width: 2%"></i>
                                    </ItemTemplate>
                                </telerik:GridTemplateColumn>

                                <telerik:GridBoundColumn
                                    UniqueName="DataEsportazioneOrdine"
                                    DataField="DataEsportazioneOrdine"
                                    SortExpression="DataEsportazioneOrdine"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    HeaderText="Data Esportazione Ordine"
                                    DataFormatString="{0:dd/MM/yyyy}"
                                    GroupByExpression="DataEsportazioneOrdine Group By DataEsportazioneOrdine">
                                </telerik:GridBoundColumn>

                                <telerik:GridBoundColumn
                                    UniqueName="Autore"
                                    DataField="Autore"
                                    SortExpression="Autore"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    HeaderText=" <%$ Resources: Doc_Labels, autore %>"
                                    GroupByExpression="Autore Group By Autore">
                                </telerik:GridBoundColumn>

                                <telerik:GridTemplateColumn
                                    AutoPostBackOnFilter="false"
                                    DataType="System.Decimal"
                                    UniqueName="totaleImporto"
                                    Display="true"
                                    Aggregate="Sum"
                                    FooterAggregateFormatString="Imponibile: {0:C}"
                                    HeaderText="<%$ Resources: Doc_Labels, imponibile %>"
                                    DataField="totaleImporto"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    Groupable="false">
                                </telerik:GridTemplateColumn>

                                <telerik:GridTemplateColumn
                                    AutoPostBackOnFilter="false"
                                    DataType="System.Decimal"
                                    UniqueName="totaleValue"
                                    Display="true"
                                    Aggregate="Sum"
                                    FooterAggregateFormatString="Totali: {0:C}"
                                    HeaderText="<%$ Resources: Doc_Labels, totali %>"
                                    DataField="totaleValue"
                                    HeaderStyle-HorizontalAlign="Center"
                                    ItemStyle-VerticalAlign="Middle"
                                    ItemStyle-HorizontalAlign="Center"
                                    Groupable="false">
                                    <ItemTemplate>
                                        <div>
                                        </div>
                                    </ItemTemplate>
                                </telerik:GridTemplateColumn>
                            </Columns>
                        </MasterTableView>
                        <ClientSettings
                            ReorderColumnsOnClient="True"
                            AllowDragToGroup="True"
                            AllowColumnsReorder="True">
                            <ClientEvents
                                OnGroupExpanded="OrdDashboard_OnGroupExpandedCollapse"
                                OnGroupCollapsed="OrdDashboard_OnGroupExpandedCollapse"
                                OnRowCreated="OnRowDataBoundOrdini"
                                OnCommand="OnCommadFunction"></ClientEvents>
                            <Selecting AllowRowSelect="True" />
                            <Resizing
                                AllowRowResize="False"
                                AllowColumnResize="False"
                                EnableRealTimeResize="False"
                                ResizeGridOnColumnResize="False"></Resizing>
                        </ClientSettings>
                        <GroupingSettings ShowUnGroupButton="true" RetainGroupFootersVisibility="false" />
                    </telerik:RadGrid>
                </div>

     

            public ResultData GetOrdiniListForDashboard(string filterExpression)
            {
                var result = new ResultData();
                MyRigaPrev rigaPrev = new MyRigaPrev();
                DocNewReport_footer_ord_prev_Result my;
                DALDocumentale db = new DALDocumentale(0);          // Database
                try
                {
                    //IQueryable<MyOrdDashboard> list = null;
                    var list = (from ord in db.Ordini
                                where (ord.TipologiaDocumento == null || ord.TipologiaDocumento == "order" && ord.IdOrder > 0)
                                join prioritySetts in db.Priority on ord.PriorityId equals prioritySetts.Id
                                into priority
                                from p in priority.DefaultIfEmpty()
                                select new MyOrdDashboard
                                {
                                    IdOrder = ord.IdOrder ?? 0,
                                    IdCliente = ord.IdCliente ?? 0,
                                    TipologiaCliente = ord.TipologiaCliente ?? 0,
                                    RagSoc = ord.RagSoc ?? "",
                                    NomeU = ord.NomeU ?? "",
                                    CognomeU = ord.CognomeU ?? "",
                                    PriorityId = ord.PriorityId ?? 0,
                                    NumeroOrdine = ord.NumeroOrdine ?? "",
                                    JobName = ord.JobName ?? "",
                                    DataOrdine = ord.DataOrdine,
                                    DataScadenza = ord.DataScadenza,
                                    Confirm = ord.Confirm ?? 0,
                                    //PriorityName = p != null && !string.IsNullOrEmpty(p.Name) ? p.Name[0] : 'N',
                                    PriorityCompleteName = p.Name ?? "Nessuna",
                                    //StatoOrdine = ord.Confirm ?? 0,                                                                 // State of ordine:
                                    StatoOrdineValue = ord.Confirm == 1 ? "In Coda" :                                                                    // 1 -- InCoda
                                                      (ord.Confirm == 2 ? "In Lavorazione" :                                                             // 2 -- InLavorazione
                                                      (ord.Confirm == 3 ? "Evaso" : "Annullato")),                                                       // 3 -- Evaso
                                                                                                                                                         // 4 -- Annullato
                                    Cliente = ord.TipologiaCliente == 5 || ord.TipologiaCliente == 6 ? ord.RagSoc : ord.NomeU + " " + ord.CognomeU,      // Type of client: 
                                                                                                                                                         // private: NomeU + CognomeU
                                                                                                                                                         // company: RagSoc
                                    StatoDocumentoFattura = ord.StatoDocumentoFattura == "fatturatoParziale" ? Resources.Doc_Labels.fatturatoParziale :
                                                            (ord.StatoDocumentoFattura == "fatturato" ? Resources.Doc_Labels.fatturato :
                                                            (ord.StatoDocumentoFattura == "nonFatturabile" ? Resources.Doc_Labels.nonFatturabile :
                                                            (ord.StatoDocumentoFattura == "daFatturare" ? Resources.Doc_Labels.daFatturare :
                                                            (ord.StatoDocumentoFattura == "" || ord.StatoDocumentoFattura == null ? Resources.Doc_Labels.daFatturare : "")))),


                                    StatoGatewayTransazione = ord.StatoGatewayTransazione ?? 0,
                                    StatoPagamento = ord.StatoGatewayTransazione == 0 ? Resources.Doc_Labels.nonEseguito : Resources.Doc_Labels.eseguito,
                                    FlagPagamento = ord.StatoGatewayTransazione ?? 0,
                                    IdGateway = ord.IdGateway ?? 0,
                                    TipoPagamento = ord.TipologiaPagamento ?? Resources.Doc_Labels.nessuno,
                                    OrdineEsportato = ord.OrdineEsportato ?? false,
                                    OrdineEsportatoName = ord.OrdineEsportato != null ? Resources.Doc_Labels.esportato : Resources.Doc_Labels.nonesportato,
                                    DataEsportazioneOrdine = ord.DataEsportazioneOrdine,
                                    Autore = ord.EmessoDa,
                                    //totaleImporto = Convert.ToDecimal((rigaPrev.getTotali(Convert.ToInt32(ord.IdOrder), "ordine", "").Imponibile)),
                                    //totaleValue = Convert.ToDecimal((rigaPrev.getTotali(Convert.ToInt32(ord.IdOrder), "ordine", "").Totale)),
                                });

                    //IQueryable<MyOrdDashboard> ordini = null;

                    //replace DateTime.Parse
                    int countDate = Regex.Matches(filterExpression, "DateTime.Parse").Count;
                    var listaDate = new object[countDate];

                    if (countDate > 0)
                    {
                        //for the DateTime expression to work we need to handle them as
                        filterExpression = filterExpression.Replace("DateTime.Parse", string.Empty);

                        for (int i = 0; i < countDate; i++)
                        {
                            //Create a new Regular expression that covers all the date types!
                            System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(
                                "\\(\\\"" +
                                    "\\d{1,2}[/-]\\d{1,2}[/-]\\d{2,4}" + //mm/dd/yyyy
                                    "(?:" +
                                        "\\s*\\d{1,2}:\\d{1,2}:\\d{1,2}" + // hh:mm:ss
                                        "(?:" +
                                            "\\s*(?:AM|PM){0,2}" + // AM
                                        "){0,1}" +
                                    "){0,1}" +
                                "\\\"\\)",
                                RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled
                                );

                            string date = regex.Match(filterExpression).ToString().Replace("\"", string.Empty).Replace("(", string.Empty).Replace(")", string.Empty);
                            DateTime d = Convert.ToDateTime(date);
                            filterExpression = regex.Replace(filterExpression, "@" + i.ToString(), 1);

                            listaDate[i] = d;
                        }
                    }


                    if (!String.IsNullOrEmpty(filterExpression))
                    {
                        if (countDate > 0)
                        {
                            list = list.AsQueryable().Where(filterExpression, listaDate);
                        }
                        else
                        {
                            list = list.AsQueryable().Where(filterExpression);
                        }
                    }



                    result.Data = list.ToList();
                    result.Count = list.Count();

                }
                catch (Exception e)
                {
                    throw e;
                }

                return result;
            }



    protected void OnNeedDataSource_OrdiniDashboard(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
            {

                DocNewGroupingTemplate docNewGroupingTemplate = new DocNewGroupingTemplate();
                docNewGroupingTemplate.GroupingTemplateDetailsList = new List<DocNewGroupingTemplateDetails>();
                ControllerGroupingTemplate ctrlGroupTemp = new ControllerGroupingTemplate();
                string sortExpression = String.Empty;

                Helper helper = new Helper();
                if (!helper.isValid(HttpContext.Current.Session))
                {
                    return;
                }
                try
                {
                    int groupingId = 0;
                    if (HttpContext.Current.Session["GroupingTemplateComboBox"] != null)
                    {
                        groupingId = Int32.Parse(HttpContext.Current.Session["GroupingTemplateComboBox"].ToString());
                        if(groupingId == -1)
                        {
                            docNewGroupingTemplate.GroupingName = "";
                            docNewGroupingTemplate.GroupingTemplateDetailsList = new List<DocNewGroupingTemplateDetails>();
                            docNewGroupingTemplate.GroupingTemplateDetailsList.Add(new DocNewGroupingTemplateDetails() { ColumnName = "DataScadenza", SortType = "Descending", GroupingSenderId = "dataScadenza", Type= "Data scadenza" });
                            docNewGroupingTemplate.GroupingTemplateDetailsList.Add(new DocNewGroupingTemplateDetails() { ColumnName = "StatoOrdineValue", SortType = "Descending", GroupingSenderId = "statoOrdineValue", Type = "Stato" });

                        }
                        else
                        {
                            docNewGroupingTemplate.GroupingName = ctrlGroupTemp.GetGroupingTemplateName(groupingId);
                            docNewGroupingTemplate.GroupingTemplateDetailsList = ctrlGroupTemp.GetGroupingTemplateDetailsList(groupingId);
                        }
                    }

                    string filterPeriod = HttpContext.Current.Session["FilterPeriod"].ToString();
                    string filterExpression = String.Empty;

                    if (filterPeriod != "Nessuno")
                    {
                        string ricercaPerPeriodo = HttpContext.Current.Session["RicercaPerPeriodo"].ToString();
                        string fromDate = HttpContext.Current.Session["From"].ToString();
                        string toDate = HttpContext.Current.Session["To"].ToString();
                        DateTime currentDate = DateTime.Now;

                        if (ricercaPerPeriodo != "Personalizzato")
                        {
                            HttpContext.Current.Session.Add("From", String.Empty);
                            HttpContext.Current.Session.Add("To", String.Empty);
                            fromDate = String.Empty;
                            toDate = String.Empty;
                        }


                        if (!String.IsNullOrEmpty(filterPeriod) && !String.IsNullOrEmpty(ricercaPerPeriodo) && filterPeriod != "Nessuno")
                        {

                            switch (ricercaPerPeriodo)
                            {
                                case "Oggi":
                                    filterExpression = $"({filterPeriod} >= DateTime.Parse(\"{currentDate.Date}\")) AND ({filterPeriod} <= DateTime.Parse(\"{currentDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59)}\"))";
                                    break;
                                case "Ieri":
                                    currentDate = DateTime.Now.AddDays(-1);
                                    filterExpression = $"({filterPeriod} >= DateTime.Parse(\"{currentDate.Date}\")) AND ({filterPeriod} <= DateTime.Parse(\"{currentDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59)}\"))";
                                    break;

                                case "QuestaSettimana":
                                    DateTime monday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + 1);
                                    filterExpression = $"({filterPeriod} >= DateTime.Parse(\"{monday.Date}\")) AND ({filterPeriod} <= DateTime.Parse(\"{currentDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59)}\"))";
                                    break;

                                case "QuestoMese":
                                    DateTime month = DateTime.Today.AddDays(-(int)DateTime.Today.Day + 1);
                                    filterExpression = $"({filterPeriod} >= DateTime.Parse(\"{month.Date}\")) AND ({filterPeriod} <= DateTime.Parse(\"{currentDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59)}\"))";
                                    break;

                                case "SettimanaScorsa":
                                    DateTime mondayOfLastWeek = currentDate.AddDays(-(int)currentDate.DayOfWeek - 6);
                                    DateTime sundayOfLastWeek = currentDate.AddDays(-(int)currentDate.DayOfWeek);
                                    filterExpression = $"({filterPeriod} >= DateTime.Parse(\"{mondayOfLastWeek.Date}\")) AND ({filterPeriod} <= DateTime.Parse(\"{sundayOfLastWeek.Date.AddHours(23).AddMinutes(59).AddSeconds(59)}\"))";
                                    break;
                                case "MeseScorso":
                                    DateTime lastMonth = new DateTime(currentDate.Year, currentDate.Month, 1);
                                    DateTime first = lastMonth.AddMonths(-1);
                                    DateTime last = lastMonth.AddDays(-1);
                                    filterExpression = $"({filterPeriod} >= DateTime.Parse(\"{first.Date}\")) AND ({filterPeriod} <= DateTime.Parse(\"{last.Date.AddHours(23).AddMinutes(59).AddSeconds(59)}\"))";
                                    break;
                                case "Personalizzato":
                                    if (!String.IsNullOrEmpty(fromDate) && !String.IsNullOrEmpty(toDate))
                                        filterExpression = $"({filterPeriod} >= DateTime.Parse(\"{fromDate}\")) AND ({filterPeriod} <= DateTime.Parse(\"{toDate}\"))";
                                    break;

                                case "Nessuno":
                                    filterExpression = String.Empty;
                                    break;

                                default:
                                    filterExpression = String.Empty;
                                    break;
                            }
                        }
                    }


                    ResultData result = GetOrdiniListForDashboard(filterExpression);

                    if (groupingId != 0)
                    {

                        OrdiniDashboard_Grid.MasterTableView.GroupByExpressions.Clear();
                        foreach (var item in docNewGroupingTemplate.GroupingTemplateDetailsList)
                        {
                            GridGroupByField field = new GridGroupByField();
                            field.FieldName = item.ColumnName;
                            field.HeaderText = item.Type;
                            if (item.SortType == "Ascending")
                                field.SortOrder = GridSortOrder.Ascending;
                            else if (item.SortType == "Descending")
                                field.SortOrder = GridSortOrder.Descending;
                            else
                                field.SortOrder = GridSortOrder.None;
                            GridGroupByField selectfield = new GridGroupByField();
                            selectfield.FieldName = item.ColumnName;
                            selectfield.HeaderText = item.Type;
                            selectfield.FormatString = "{0:dd/MM/yyyy}";
                            GridGroupByExpression ex = new GridGroupByExpression();
                            ex.GroupByFields.Add(field);
                            ex.SelectFields.Add(selectfield);
                            OrdiniDashboard_Grid.MasterTableView.GroupByExpressions.Add(ex);
                            
                        }                  

                        HttpContext.Current.Session.Add("GroupingTemplateComboBox", 0);
                    }

                    if (result.Count > 0)
                    {
                        OrdiniDashboard_Grid.DataSource = result.Data;

                        
                    }
                    else
                    {
                        OrdiniDashboard_Grid.DataSource = new List<MyOrdDashboard>();
                    }

                }
                catch (Exception exe)
                {
                    throw exe;
                }
            }
  2. Doncho
    Admin
    Doncho avatar
    72 posts

    Posted 02 Apr Link to this post

    Hi Tamara,

    The Items collection of RadGrid always holds the items that are on the current page.

    GridDataItemCollection items = RadGrid1.Items;
    
    foreach (GridDataItem item in items)
    {
        // some logic
    }

     

    The following articles will help you get a better understanding:

    Kind regards,
    Doncho
    Progress Telerik

    Progress is here for your business, like always. Read more about the measures we are taking to ensure business continuity and help fight the COVID-19 pandemic.
    Our thoughts here at Progress are with those affected by the outbreak.
Back to Top