IssuesMigrate from 2010v1 to 2025v1: WebReport, GridView, event handlers,

Posted by: enrique.pv-ext on 10 December 2025, 12:30 pm EST

    • Post Options:
    • Link

    Posted 10 December 2025, 12:30 pm EST

    Issues using 2025v1: C1Window , C1WebReport , C1GridView (grouping, columns moved,scroll …)

    Details

    C1Window not found !!

    C1DateInput not found

    use this?? C1.Web.Wijmo.Controls.C1Input.C1InputDate

    C1WebReport not found

    C1.C1Report.4.8.dll

    I try C1.Web.Wijmo.Controls.C1ReportViewer.C1ReportViewer

    C1WebReport1.Report.DataSource.Recordset not found

    C1WebReport1.Report.Fields[“logo”].Picture =

    not working

    public void ShowTransitReport(C1.Web.Wijmo.Controls.C1ReportViewer.C1ReportViewer C1WebReport1, SepUser loggeduser, int plazaId, int tripId)

    {

    try

    {

    IReportsService rptService = new ReportsService();

         C1WebReport1.ReportSource.FileName = HttpContext.Current.Request.PhysicalApplicationPath 
             + "/" 
             + GetConfigurationParameter(ConfigurationParamType.ReportsPath) 
             + "TollControl/Transit.xml";
         C1WebReport1.ReportSource.ReportName = "report";
    
         DataView dv = (DataView)rptService.GetTransitReport(tripId, plazaId, loggeduser.LanguageId);
    
         C1WebReport1.Report.DataSource.Recordset = dv;
    
         C1WebReport1.Report.Fields["logo"].Picture = HttpContext.Current.Request.PhysicalApplicationPath 
             + "/" 
             + GetConfigurationParameter(ConfigurationParamType.LogoPath);
         C1WebReport1.Report.Fields["logo"].PictureScale = C1.C1Report.PictureScaleEnum.Scale;
    

    C1CurrencyInput

    C1.Web.Wijmo.Controls.C1Input.C1InputCurrency

    not found:

    cb.UseEmbeddedVisualStyles = false;

    cb.VisualStyle = “CustomVisualStyle”;

    cb.VisualStylePath = “~/VisualStyles”;

    C1GroupTextEventArgs not found

    C1GridViewGroupColumnMovedEventArgs not found

    // C1.Web.UI.Controls.3, Version=3.5.20101.174, Culture=neutral, PublicKeyToken=9b75583953471eea

    // C1.Web.UI.Controls.C1GridView.C1GroupTextEventArgs

    protected void PaymentModeGrid_GroupAggregate(object sender, C1GroupTextEventArgs e)

    protected void gridLists_GroupColumnMoved(object sender, C1GridViewGroupColumnMovedEventArgs e)

    // C1.Web.Wijmo.Controls.48, Version=4.8.20251.392, Culture=neutral, PublicKeyToken=9b75583953471eea

    // C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnMovedEventArgs

    Column not found

    Session[“GroupBy”] = ((C1.Web.Wijmo.Controls.C1GridView.C1BoundField)(((C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnMovedEventArgs)(e)).Column)).DataField as string;

    C1GridView1.GroupColumnMoved not found

    C1GridViewGroupColumnMovedEventHandler not found

    C1GridView1.GroupColumnMoved += new C1GridViewGroupColumnMovedEventHandler(C1GridView1_GroupColumnMoved);

    // C1.Web.Wijmo.Controls.45, Version=4.5.20251.392, Culture=neutral, PublicKeyToken=9b75583953471eea

    // C1.Web.Wijmo.Controls.C1GridView.C1GridViewColumnMovedEventHandler

    ScrollSettings not found

    this.C1GridView1.ScrollSettings.ScrollMode = C1GridViewScrollMode.ScrollBar;

    this.C1GridView1.ScrollSettings.ScrollOrientation = C1.Web.UI.DOMScrollOrientation.Vertical;

    use this ? this.C1GridView1.ScrollingSettings.Mode = ScrollMode.Vertical;

    this.C1GridView1.CallbackOptions = CallbackOptions.Sorting; not found

    use this ?? this.C1GridView1.CallbackSettings.Action = CallbackAction.Sorting

    this.C1GridView1.AllowGrouping = false; not found

    alternative ??

    C1TabControl not found

    C1TabPage not found

    ExportFormatsEnum not found

    C1GridView.OnGroupAggregate ??

    <C1GridView:C1GridView ID=“PartialWithdrawGrid” runat=“server”

    AutoGenerateColumns=“False”

    EmptyDataText=“El operador elegido no ha hecho retiradas parciales”

    DataKeyNames=“ShiftNumber,PlaceId,DateTime,ManuallyAdded,BEGIN_DATE_TIME_SHIFT,OPERATOR_ID, Type”

    CellPadding=“2”

    OnGroupAggregate=“PartialWithdrawGrid_GroupAggregate”

    UseEmbeddedVisualStyles=“False”

    VisualStylePath=“~/VisualStyles”

    VisualStyle=“Vista”

    Width=“100%”>



    any suggestion ?

  • Posted 11 December 2025, 8:39 am EST

    Hello,

    For your reference, you are migrating from a very old version (2010v1) to the latest release (2025v1), so encountering breaking changes is expected. You will need to review the release history and update your project accordingly.

    Additionally, please note that WebForms has been considered a legacy framework for quite some time, and our WebForms controls are also in legacy status. This means there is no active development on them, and no new features or enhancements are being introduced.

    To upgrade your controls, we’d recommend reviewing all the breaking changes in Release Notes and going through the new documentation to implement your requirements.

    If you still are unable to implement your requirement, please share your use case, expected results, previous implementation, etc. with us so that we can assist you accordingly.


    C1Window not found !!: C1Window has been replaced with https://developer.mescius.com/componentone/docs/webforms/online-dialog/overview.html

    C1DateInput not found: Please refer to https://developer.mescius.com/componentone/docs/webforms/online-input/usingc1inputdate.html

    C1.Web.Wijmo.Controls.C1Input.C1InputCurrency not found: please refer to https://developer.mescius.com/componentone/docs/webforms/online-input/usingc1inputcurrency.html

    Regarding missing properties, webforms input controls DO NOT support EmbeddedVisualStyles, CustomVisualStyle, or VisualStylePath anymore. Please use CSS based styling.


    We are investigating other behaviors and will get back with updates soon.

    Regards,

    Uttkarsh.

  • Posted 12 December 2025, 6:29 am EST

    Hello,

    C1ReportViewer:

    For your requirement, you can load and configure your Report using RegisterDocument() method.


    C1TabControl not found:

    Please refer to https://developer.mescius.com/componentone/docs/webforms/online-tab/overview.html


    C1GridView:

    As we understand it, you are currently unable to locate the events related to grouping (Aggregates) and column dragging/reordering in the latest version of the grid. After reviewing the available documentation and resources, we were not able to identify the same events or APIs that you were using previously.

    To help us guide you toward the correct implementation using the updated API set, could you please share the specific use cases and the behaviors you need to achieve? Once we have that information, we will provide recommendations or alternative approaches.

    ScrollSettings not found:

    Please refer to https://developer.mescius.com/componentone/docs/webforms/online-gridview/C1.Web.Wijmo.Controls.45~C1.Web.Wijmo.Controls.C1GridView.C1GridView~ScrollingSettings.html

    use this ? this.C1GridView1.ScrollingSettings.Mode = ScrollMode.Vertical; yes that is correct.

    use this ?? this.C1GridView1.CallbackSettings.Action = CallbackAction.Sorting yes that is correct.

    Regards,

    Uttkarsh.

  • Posted 12 December 2025, 8:10 am EST - Updated 12 December 2025, 9:03 am EST

    Thanks all.

    About C1GridView Grouping:

    My actual code (for 2012v1)

    I use GroupedColumns for grouping by SortExpression (my GetGridFilterByFieldType method)

    In 2025v1, the GroupedColumns collection not exists.

      /// <summary>
      /// Get a DataTable with filters correctly constructed
      /// </summary>
      /// <param name="gridColumns">Filters information</param>
      /// <param name="mainTable">Main table to realize filters</param>
      /// <param name="appDateFormat">Date format parameter</param>
      /// <param name="sortEventArgs">Data of sorting event</param>
      /// <returns>Correct DataTable</returns>
      public static DataTable GetChartGridFilterByFieldType(C1GridView gridView, DataTable mainTable, string appDateFormat, C1GridViewSortEventArgs sortEventArgs)
      {
          // TODO: NEW 2025v1
          gridView.ShowGroupArea = true;
          gridView.GroupAreaCaption = "Agrupar";
          gridView.GroupIndent = 0;
          var colName = gridView.Columns[0];
    
          //Group grid datasource 
          var result = from row in GetGridFilterByFieldType(gridView, mainTable, appDateFormat, sortEventArgs).AsEnumerable()
                       //let mivariable = 
                       group row by new
                       {
                           Name = row.Field<object>(gridView.GroupedColumns[0].SortExpression)
                       } into grp
                       select new
                       {
                           NAME = grp.Key.Name,
                           COUNT = grp.Count(),
                       };
          
          DataTable dt = result.ToList().ToDataTable();
          dt.Select(null, (gridView.GroupedColumns[0].SortDirection == C1SortDirection.Ascending ? "Name ASC" : "Name DESC"));
    
          //Return datatable with grouping info
          return dt;
      }

    and

          public static DataTable GetGridFilterByFieldType(C1GridView gridView, DataTable mainTable, string appDateFormat, C1GridViewSortEventArgs sortEventArgs)
        {
            DataTable retValue = new DataTable();
            DataRow[] dr;
            DataColumn dc = new DataColumn();
            FilterOperator fOperator;
    
            string fieldName = string.Empty;
            string fieldValue = string.Empty;
            string filterValue = string.Empty;
            string fieldGroupName = string.Empty;
            string sortExpression = string.Empty;
            string condExpression = string.Empty;
            string condExpressionNumeric = string.Empty;
            C1SortDirection dirOrder = C1SortDirection.None;
            bool isSpecialType = false;
    
            #region SQL OF FILTERS AND ORDER BY
    
            //FIRST LEVEL OF ORDER BY --> GROUPING FIELD
            if (gridView.GroupedColumns.Count > 0)
            {
                if (!string.IsNullOrEmpty(((C1BoundField)gridView.GroupedColumns[0]).SortExpression))
                {
                    fieldGroupName = ((C1BoundField)gridView.GroupedColumns[0]).SortExpression.ToString();
    
                    dirOrder = GetSortDirectionFromField(((C1BoundField)gridView.GroupedColumns[0]), sortEventArgs, isSpecialType);
                    sortExpression += ((C1BoundField)gridView.GroupedColumns[0]).SortExpression + " " + (dirOrder == C1SortDirection.Ascending ? "ASC" : "DESC");
                }
    
            }
    
            //SECOND LEVEL OF ORDER BY --> REST OF COLUMNS
            for (int i = 0; i < gridView.Columns.Count; i++)
            {
                dirOrder = C1SortDirection.None;
                isSpecialType = false;
    
                if (gridView.Columns[i].ItemStyle.CssClass == "GridNumber" || gridView.Columns[i].ControlStyle.CssClass == "GridNumber")
                {
                    #region DECIMAL NUMBER
                    dirOrder = GetSortDirectionFromField((C1BoundField)gridView.Columns[i], sortEventArgs, isSpecialType);
                    fOperator = ((C1BoundField)gridView.Columns[i]).FilterOperator;
    
                    if (fOperator != FilterOperator.NoFilter)
                    {
                        filterValue = ((C1BoundField)gridView.Columns[i]).FilterValue.ToString();
    
                        // Si encontramos valor nulo asignamos un 0
                        if (string.IsNullOrEmpty(filterValue)) filterValue = "0";
                        // Varias expresiones condicionales
                        if (condExpressionNumeric.Length > 0) condExpressionNumeric += " AND ";
                        // Construimos la expresion SQL del WHERE
                        condExpressionNumeric += GetSQLFilterFromGridFilter(fOperator, gridView.Columns[i].ToString(), filterValue);
                    }
                    #endregion
                }
                else if (gridView.Columns[i].ItemStyle.CssClass == "GridNumericValue" || gridView.Columns[i].ControlStyle.CssClass == "GridNumericValue")
                {
                    #region INTEGER NUMBER
                    dirOrder = GetSortDirectionFromField((C1BoundField)gridView.Columns[i], sortEventArgs, isSpecialType);
                    fOperator = ((C1BoundField)gridView.Columns[i]).FilterOperator;
    
                    if (fOperator != FilterOperator.NoFilter)
                    {
                        filterValue = ((C1BoundField)gridView.Columns[i]).FilterValue.ToString();
    
                        if (string.IsNullOrEmpty(filterValue)) filterValue = "0";
                        if (condExpression.Length > 0) condExpression += " AND ";
    
                        condExpression += GetSQLFilterFromGridFilter(fOperator, gridView.Columns[i].ToString(), filterValue);
                    }
                    #endregion
                }
                else if (gridView.Columns[i].ItemStyle.CssClass == "GridDate" || gridView.Columns[i].ControlStyle.CssClass == "GridDate")
                {

    I’m very confused now, yet.

    // All I should need know about Gridview Grouping

                // All I should need know about Gridview Grouping
                gridView.ShowGroupArea = true;
                gridView.GroupAreaCaption = "Agrupar";
                gridView.GroupIndent = 0;
                gridView.AllowColMoving = true;
                var colName = gridView.Columns[0];
                var cf = (colName as C1Field);
                cf.AllowMoving = false;
                cf.GroupInfo.Position = GroupPosition.Header;
                cf.Aggregate = Aggregate.Count;
                cf.Aggregate = Aggregate.Custom; // Custom value (causing grid to throw the C1GridView.OnClientGroupAggregate event).

    Any PDF file with all documentation about WebForms ? maybe NotebookLM + IA can be very useful. THX

  • Posted 15 December 2025, 5:07 am EST

    Hello,

    As per our understanding, you are using GridView grouping as an input mechanism to determine how the data should be grouped, sorted, and aggregated on the server, after which the updated DataTable / DataView is rebound to the C1GridView (and potentially reused for charts or other summaries). In earlier versions, this was achieved by handling Aggregate.Custom on the server, which exposed the grouping context through server-side events.

    In the latest version (2025v1), Aggregate.Custom no longer raises server-side events and has been updated to work through the client-side OnClientGroupAggregate event. As a result, the GridView no longer exposes grouping state directly to the server.

    So, the recommended approach is to handle grouping changes on the client using OnClientGroupAggregate, extract the required grouping information (such as grouped column and sort direction), and then explicitly submit this information to the server—using a callback, AJAX request, or postback. On the server, you can then construct the required grouping and sorting expressions, apply them to your data source (SQL, LINQ, or DataTable / DataView), and finally rebind the updated data back to the GridView.

    Please let us know if it helps.

    Please refer to GridView Grouping documentation: https://developer.mescius.com/componentone/docs/webforms/online-gridview/Grouping.html

    You can also refer to ControlExplorer product sample located at .\Documents\ComponentOne Samples\ASP.NET Web Forms\WebForms\CS on your machine if you have installed the samples while installing the legacy WebForms Suite using ComponentOneControlPanel.

    Any PDF file with all documentation about WebForms ? maybe NotebookLM + IA can be very useful

    We’re sorry but there are not many resources available for the legacy WebForms. You can find everything available in documentation (https://developer.mescius.com/componentone/docs/webforms), blogs (https://developer.mescius.com/search/webforms%20blogs/1?filter=developer.mescius.com/blogs) and public forum (https://developer.mescius.com/forums/webforms-edition).


    Since there have been significant architectural and API changes between older WebForms versions and the latest release, we recommend evaluating a direct upgrade to ASP.NET MVC if possible.

    ASP.NET MVC: https://developer.mescius.com/componentone/docs/mvc/online-mvc/overview

    ASP.NET Core: https://developer.mescius.com/componentone/docs/mvc/

    Regards,

    Uttkarsh.

Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels